2017-06-27 28 views
1

当我使用的BigQuery星火,我婉特殊分区Tables.like这样的:的BigQuery与星火保存到分区表

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

但是当我运行该程序时,出现错误:

线程“main”中的异常java.lang.IllegalArgumentException:无效 datasetAndTableString'test.shade2 $ 20170626';必须匹配正则表达式 '[a-zA-Z0-9 _] +。[a-zA-Z0-9 _] +'。在 com.google.common.base.Preconditions.checkArgument(Preconditions.java:145) 在 com.google.cloud.hadoop.io.bigquery.BigQueryStrings.parseTableReference(BigQueryStrings.java:55) 在 融为一体。 google.cloud.hadoop.io.bigquery.BigQueryConfiguration.configureBigQueryOutput(BigQueryConfiguration.java:238) 在 com.vsoontech.bi.bq.spark.BqSparkDemo2.configureBigQueryOutput(BqSparkDemo2.java:44) 在 com.vsoontech。 bi.bq.spark.BqSparkDemo2.execute(BqSparkDemo2.java:66) 在com.vsoontech.bi.bq.spark.Main.main(Main.java:10)

所以,有什么要解决的,如果我想特别表的日期部分?想。

回答

0

这似乎是在最新版本的bigdata-interop库中修复的。

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

“$”(分区分隔符)已作为一个表中引用一个有效的字符。

+0

认为!这解决了我的问题。该行为是我使用谷歌连接器的旧版本0.7.2-hadoop2。当我更改为0.8.0-hadoop2(确认BigQueryStrings包含“$”)。有用。 –