在未定义.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标头。
有什么建议吗?提前谢谢!
答案 0 :(得分:1)
让我补充一下现有的另一个问题的答案:
或者,您可以通过作业直接对BigQuery进行单独查询:在管道构建时查询,然后将其结果传递给BigQueryIO.Write转换。
查询确定架构应该很少或没有成本。您只需在查询中设置dryRun
标志,然后就不会处理任何字节。