gpt4 book ai didi

java - 使用 BigQuery 遇到问题

转载 作者:行者123 更新时间:2023-12-05 06:58:37 28 4
gpt4 key购买 nike

我正在运行一个示例 Java 代码,我试图在其中获取 BigQuery 表的描述。当我在本地运行它时,它工作正常。但是当我去谷歌云并在 GCS 中部署 jar 并通过 dataproc 运行它时,我遇到了以下问题

Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor;  
at com.google.api.gax.retrying.BasicRetryingFuture.<init>(BasicRetryingFuture.java:88)
at com.google.api.gax.retrying.DirectRetryingExecutor.createFuture(DirectRetryingExecutor.java:88)
at com.google.api.gax.retrying.DirectRetryingExecutor.createFuture(DirectRetryingExecutor.java:74)
at com.google.cloud.RetryHelper.run(RetryHelper.java:75)
at com.google.cloud.RetryHelper.runWithRetries(RetryHelper.java:50)
at com.google.cloud.bigquery.BigQueryImpl.getTable(BigQueryImpl.java:665)

示例代码:

private static BigQuery bigquery = null;
static {
bigquery = BigQueryOptions.newBuilder()
.setProjectId("**PROJECT_ID**")
.build().getService();
}
public static void getTable(String projectId, String datasetName, String tableName) {
try {
TableId tableId = TableId.of(projectId, datasetName, tableName);
Table table = bigquery.getTable(tableId);
System.out.println("Table info: " + table.getDescription());
} catch (BigQueryException e) {
System.out.println("Table not retrieved. \n" + e.toString());
}
}

pom.xml - 这是我的 pom.xml 中唯一的依赖项。我从早期的 pos 中看到了检查 Guava 依赖冲突的建议,但就我而言,我没有看到冲突,因为我没有其他可能与此冲突的依赖。

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

在 Dataproc 用户界面中,我通过将作业类型作为 Spark 传递来提交此作业。

最佳答案

一般来说,java.lang.NoSuchMethodError 通常表示正在使用一个 API 的两个不同版本,并且编译后的代码期望的版本与部署站点实际存在的版本不同。在这种情况下,com.google.common.util.concurrent.MoreExecutors 似乎是冲突的依赖项。 IIRC 它是 Google Guava 的一部分。

如果最近修改了MoreExecutors.directExecutor()方法,请查看guava的版本历史,并将部署的guava版本与本地版本进行比较。

关于java - 使用 BigQuery 遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64572922/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com