使用Spark的BigQuery保存到分区表中

时间:2017-06-27 11:06:57

标签: apache-spark google-bigquery

当我在Spark中使用BigQuery时,我想要特殊的Partitioned Tables.like:

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)   在   com.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)

所以,有什么可以解决它,如果我想特别表的日期分区?认为

1 个答案:

答案 0 :(得分:0)

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

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

" $" (分区分隔符)已添加为表引用中的有效字符。