【问题标题】:Apache beam and BigQueryApache Beam 和 BigQuery
【发布时间】:2018-12-07 10:09:10
【问题描述】:

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

【问题讨论】:

    标签: java google-bigquery apache-beam


    【解决方案1】:

    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 操作提供了一个包装器。

    【讨论】:

    • 我没有找到如何从指定的数据集中获取表。我想使用 Dataflow 将表从 Dataset US 迁移到数据集位置 EU。我想在数据集 US 的并行过程中获取所有表,并在数据集 EU 中写入表。我没有找到数据集 EU 中存在表的方法获取方案。你能帮帮我吗?
    • 请为您想为社区利益讨论的第二个问题打开一个新问题。
    猜你喜欢
    • 2021-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多