Apache Beam и BigQuery - PullRequest
       32

Apache Beam и BigQuery

0 голосов
/ 28 июня 2018

Я пытаюсь запустить apache beam sdk 2.4 и библиотеки com.google.cloud.bigquery, но исключение

Exception in thread main java.lang.NoSuchMethodError com.google.api.client.googleapis.services.json.AbstractGoogleJsonClient$Builder.setBatchPath(LjavalangString;)LcomgoogleapiclientgoogleapisservicesAbstractGoogleClient$Builder;
at com.google.api.services.bigquery.Bigquery$Builder.setBatchPath(Bigquery.java3519)

import com.google.cloud.bigquery.*;

<dependency>
    <groupId>com.google.cloud.dataflow</groupId>
    <artifactId>google-cloud-dataflow-java-sdk-all</artifactId>
    <version>[2.4.0, 2.99)</version>
</dependency>

<!-- slf4j API frontend binding with JUL backend -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <versi

on>1.7.14</version>
    </dependency>

   <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-jdk14</artifactId>
        <version>1.7.14</version>
    </dependency>

    <dependency>
        <groupId>com.google.cloud</groupId>
        <artifactId>google-cloud-bigquery</artifactId>
        <version>1.35.0</version>
    </dependency>

</dependencies>
the code example apache beam 2.4 using
import com.google.api.services.bigquery.model.TableFieldSchema;
import com.google.api.services.bigquery.model.TableRow;
import com.google.api.services.bigquery.model.TableSchema;

Если я использую библиотеки om.google.api.services.bigquery. код пример успешно выполнен.

Какую библиотеку он использует для внутреннего использования?

Какую библиотеку мне использовать? com.google.api.services.bigquery или com.google.cloud.bigquery?

1 Ответ

0 голосов
/ 28 июня 2018

Beam 2.4 использует com.google.api.services.bigquery v2-rev374-1.22.0. Это также библиотека, которую вы должны использовать с Beam 2.4. Библиотека com.google.api.services.bigquery устарела, и существует открытый выпуск для ее обновления. К сожалению, другие компоненты в Beam зависят от библиотек, которые несовместимы с com.google.cloud.bigquery, и их необходимо обновить, прежде чем использовать новую библиотеку.

Если вы этого еще не сделали, вам следует взглянуть на BigQuery IO , который предоставляет оболочку для распространенных операций BigQuery для Beam.

...