导出 PCollection<TableRow>
的最佳方式是什么?当 .csv header 和表架构均未定义时,作为 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 header 。
有什么建议吗?提前致谢!
最佳答案
让我添加到另一个问题的现有已接受答案:
Alternatively, you could make a separate query to BigQuery directly via jobs: query at pipeline construction time, whose result can then be passed to BigQueryIO.Write transform.
确定架构的查询成本应该很小或没有。您只需设置 dryRun
在您的查询中标记,然后将不会处理任何字节。
关于java - 将 PCollection<TableRow> 导出为具有未知标题的 CSV/具有未知架构的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34580626/