繁体   English   中英

Apache Beam和BigQuery

[英]Apache beam and BigQuery

我正在尝试执行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?

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 ,它为Beam的常见BigQuery操作提供了包装。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM