Google Cloud Dataproc удалить таблицу BigQuery не работает - PullRequest
0 голосов
/ 21 января 2019

Привет! Я попытался удалить таблицу из BigQuery, используя клиентскую библиотеку Java в Dataproc, запустил spark-shell, как показано ниже:

spark-shell --packages com.google.cloud:google-cloud-bigquery:1.59.0

и импортировать следующую зависимость

import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.FieldValueList;
import com.google.cloud.bigquery.Job;
import com.google.cloud.bigquery.JobId;
import com.google.cloud.bigquery.JobInfo;
import com.google.cloud.bigquery.QueryJobConfiguration;
import com.google.cloud.bigquery.QueryResponse;
import com.google.cloud.bigquery.TableResult;
import java.util.UUID;

val bigquery = BigQueryOptions.getDefaultInstance().getService() 
bigquery.delete("test","temp")

здесь test и temp - это мой набор данных и имя таблицы соответственно, но после выполнения инструкции выше выдается следующая ошибка:

java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor;
  at com.google.api.gax.retrying.BasicRetryingFuture.<init>(BasicRetryingFuture.java:82)
  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.delete(BigQueryImpl.java:386)
  at com.google.cloud.bigquery.BigQueryImpl.delete(BigQueryImpl.java:375)
  ... 48 elided   

1 Ответ

0 голосов
/ 22 января 2019

Это потому, что у вас есть путь к классам более старой библиотеки Guava версии (приведенной как зависимость Hadoop / Spark), у которой нет метода MoreExecutors.directExecutor.

Чтобы устранить эту проблему, вам нужновключить и затенить / переместить (чтобы избежать конфликтов с другими библиотеками на пути к классам) google-cloud-bigquery библиотека и ее зависимости (включая Guava) в UberJar .

вашего приложения. Вот пример того, как сделать это с помощью плагина Maven Shade .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...