gpt4 book ai didi

java - BigQueryIO 读取获取 TableSchema

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:47:31 30 4
gpt4 key购买 nike

我想做的是读取一个现有表并生成一个新表,该表具有与原始表相同的架构以及一些额外的列(从原始表的某些列计算得出)。可以在不通知我的情况下增加原始表架构(我在数据流作业中使用的字段不会更改),因此我希望始终读取架构而不是定义一些包含架构的自定义类。

在 Dataflow SDK 1.x 中,我可以通过以下方式获取 TableSchema

final DataflowPipelineOptions options = ...
final String projectId = ...
final String dataset = ...
final String table = ...

final TableSchema schema = new BigQueryServicesImpl()
.getDatasetService(options)
.getTable(projectId, dataset, table)
.getSchema();

对于 Dataflow SDK 2.x,BigQueryServicesImpl 已成为包私有(private)类。

我阅读了 Get TableSchema from BigQuery result PCollection<TableRow> 中的回复但我不想对 BigQuery 进行单独的查询。由于该响应现在已经快 2 年了,SO 社区是否还有其他想法或想法?

最佳答案

由于 BigQueryI/O 现在的设置方式。它需要在管道开始运行之前查询表模式。这是一个很好的功能想法,但在单个管道中不可行。在您链接的示例中,表架构是运行管道之前的查询。

如果添加了新列,那么不幸的是必须重新启动新管道。

关于java - BigQueryIO 读取获取 TableSchema,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50242240/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com