java - 将 PCollection<TableRow> 导出为具有未知标题的 CSV/具有未知架构的表

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

导出 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/

相关文章:

java - 用动态创造突破性的新标题

java - 如何有效地将 UDP 数据包绑定(bind)到实体

java - 如何在 Spring @Value 注解中正确指定默认值?

python - 缺少一个标题时强制 read_csv 失败

java - Apache Beam 和 BigQuery

firebase - 如何将所有事件数据从 Firebase 导出到 BigQuery?

tensorflow - tf.data.Dataset 中大量数据集的最佳数据流和处理解决方案

java - 如何设置 GridPane 自动调整以适应 JavaFX 中的内容

python - 将 dask 数据帧写入一个文件

Python3 - 附加到不包含某些单词的数组行