2017-06-27 5 views
1

zu speichern Wenn ich BigQuery mit Funken verwenden, wan ich spezielle partitionierten Tables.like dies:BigQuery mit Funken in partitionierten Tabellen

configureBigQueryOutput(hadoopConf, 
      "test", "shade2$20170626", 
      "[{'name': 'word', 'type': 'STRING'}, {'name': 'word_count', 'type': 'INTEGER'}]"); 

, aber wenn ich das Programm ausführen, tritt der Fehler auf:

Ausnahme im Thread "main" java.lang.IllegalArgumentException: Ungültig datasetAndTableString 'test.shade2 $ 2017062626'; muss mit Regex übereinstimmen '[a-zA-Z0-9 _] +. [a-zA-Z0-9 _] +'. bei com.google.common.base.Preconditions.checkArgument (Preconditions.java:145) bei com.google.cloud.hadoop.io.bigquery.BigQueryStrings.parseTableReference (BigQueryStrings.java:55) bei com. google.cloud.hadoop.io.bigquery.BigQueryConfiguration.configureBigQueryOutput (BigQueryConfiguration.java:238) bei com.vsoontech.bi.bq.spark.BqSparkDemo2.configureBigQueryOutput (BqSparkDemo2.java:44) bei com.vsoontech. bi.bq.spark.BqSparkDemo2.execute (BqSparkDemo2.java:66) bei com.vsoontech.bi.bq.spark.Main.main (Main.java:10)

Also, es gibt etwas, um es zu lösen, wenn ich den Datumsteil der Tabelle speziell machen möchte? denkt.

Antwort

0

Dies scheint in der neuesten Version der bigdata-interop-Bibliothek behoben zu sein.

See: https://github.com/GoogleCloudPlatform/bigdata-interop/blob/master/bigquery/src/main/java/com/google/cloud/hadoop/io/bigquery/BigQueryStrings.java

"$" (die Partition Begrenzer) hat als gültiges Zeichen in einem Tabellenverweis hinzugefügt.

+0

denkt nach! Das löst mein Problem. Die Handlung ist, dass ich die alte Version 0.7.2-hadoop2 für Google-Connector verwende. Wenn ich zu 0.8.0-hadoop2 ändere (bestätigen Sie, dass BigQueryStrings "$" enthält). Es klappt. –

Verwandte Themen