【问题标题】:Export PCollection<TableRow> as CSV with unknown header / Table with unknown Schema将 PCollection<TableRow> 导出为带有未知标头的 CSV/带有未知架构的表
【发布时间】:2016-01-03 19:23:12
【问题描述】:

当 .csv 标头和表架构都未定义时,将 PCollection&lt;TableRow&gt; 导出为 BigQuery 表或 .csv 文件的最佳方式是什么?
它们是未知的,因为PCollection&lt;TableRow&gt;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 标头。

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

【问题讨论】:

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


【解决方案1】:

让我添加到另一个问题的现有已接受答案:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2020-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多