首页 文章

Apache beam和BigQuery

提问于
浏览
0

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

代码示例apache beam 2.4使用

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 回答

  • 2

    Beam 2.4正在使用com.google.api.services.bigquery v2-rev374-1.22.0 . 这也是您应该使用Beam 2.4的库 . com.google.api.services.bigquery库已过期,有一个open issue可以升级它 . 遗憾的是,Beam中的其他组件依赖于与com.google.cloud.bigquery不兼容的库,以及在使用新库之前需要升级的库 .

    如果你还没有这样做,你应该看一下BigQuery IO,它为Beam的常见BigQuery操作提供了一个包装器 .

相关问题