Как читать таблицу BigQuery из java spark с коннектором BigQuery - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь прочитать таблицу BigQuery с помощью кода Java спарк, как показано ниже:

    BigQuerySQLContext bqSqlCtx = new BigQuerySQLContext(sqlContext);
    bqSqlCtx.setGcpJsonKeyFile("sxxxl-gcp-1x4c0xxxxxxx.json");
    bqSqlCtx.setBigQueryProjectId("winged-standard-2xxxx");
    bqSqlCtx.setBigQueryDatasetLocation("asia-east1");
    bqSqlCtx.setBigQueryGcsBucket("dataproc-9cxxxxx39-exxdc-4e73-xx07- 2258xxxx4-asia-east1");
    Dataset<Row> testds = bqSqlCtx.bigQuerySelect("select * from bqtestdata.customer_visits limit 100");

Но я сталкиваюсь со следующей проблемой:

19/01/14 10:52:01 WARN org.apache.spark.sql.SparkSession$Builder: Using an existing SparkSession; some configuration may not take effect.
19/01/14 10:52:01 INFO com.samelamin.spark.bigquery.BigQueryClient: Executing query select * from bqtestdata.customer_visits limit 100
19/01/14 10:52:02 INFO com.samelamin.spark.bigquery.BigQueryClient: Creating staging dataset winged-standard-2xxxxx:spark_bigquery_staging_asia-east1

Exception in thread "main" java.util.concurrent.ExecutionException: com.google.api.client.googleapis.json.GoogleJsonResponseException: 

400 Bad Request
{
  "code" : 400,
  "errors" : 
[ {
    "domain" : "global",
    **"message" : "Invalid dataset ID \"spark_bigquery_staging_asia-east1\". Dataset IDs must be alphanumeric (plus underscores) and must be at most 1024 characters long.",**
    "reason" : "invalid"
  } ],
  "message" : "Invalid dataset ID \"spark_bigquery_staging_asia-east1\". Dataset IDs must be alphanumeric (plus underscores) and must be at most 1024 characters long.",
  "status" : "INVALID_ARGUMENT"
}

Ответы [ 2 ]

0 голосов
/ 26 июня 2019

У меня была похожая проблема с библиотекой Scala от Samelamin. Очевидно, это связано с тем, что библиотека не может обрабатывать местоположения, отличные от США и ЕС, поэтому библиотека не сможет получить доступ к наборам данных из asia-east1.

На данный момент я использую BigQuery Spark Connector для загрузки и записи своих данных из BigQuery.

Если вам удалось обойти эту библиотеку, пожалуйста, поделитесь ею.

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

Сообщение в ответе

Dataset IDs must be alphanumeric (plus underscores)...

указывает, что dataset ID "spark_bigquery_staging_asia-east1" недействителен, поскольку в нем есть дефис , в частности, в asia-east1.

...