将PCollection <tablerow>导出为具有未知标头的CSV /具有未知架构的表

时间:2016-01-03 19:23:12

标签: java csv google-bigquery google-cloud-dataflow

在未定义.csv标头和表架构的情况下,将PCollection<TableRow>导出为BigQuery表或.csv文件的最佳方法是什么?
它们是未知的,因为PCollection<TableRow>BigQueryIO.Read查询的结果(不返回模式),但是,结果表行的列名可以从查询中使用的字符串中解析(解决方法) )。

示例:

String query =  "SELECT nationality, COUNT(DISTINCT personID) AS population 
                 FROM Dataset.Table 
                 GROUP BY nationality";

PCollection<TableRow> result = p.apply(BigQueryIO.Read.fromQuery(query));

我想做的是创建一个自动导出.csv或表的函数,而无需为每个查询结果手动定义架构或.csv标头。

有什么建议吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

让我补充一下现有的另一个问题的答案:

  

或者,您可以通过作业直接对BigQuery进行单独查询:在管道构建时查询,然后将其结果传递给BigQueryIO.Write转换。

查询确定架构应该很少或没有成本。您只需在查询中设置dryRun标志,然后就不会处理任何字节。