1

如何使用 Apache Beam Python SDK 读取嵌套结构?

lines = p | io.Read(io.BigQuerySource('project:test.beam_in'))

导致

"reason": "invalidQuery",
"message": "Cannot output multiple independently repeated fields at the same time. Found classification_item_distribution and category_cat_name"

是否可以读取嵌套结构?

4

2 回答 2

1

这是 BigQuery 的属性。执行此类查询的两种方法是禁用结果展平(通过 BigQuery)或显式展平查询中的字段。

对于当前的 Python SDK,只有后者可用 -有关在何处以及如何调用该函数的指南,请参阅“扁平化 Google Analytics 数据(重复字段)不再工作”。FLATTEN

如果您愿意订阅更新或讨论,禁用扁平化的功能将归档为BEAM-877 。

于 2016-11-30T18:26:04.517 回答
1

您现在可以通过flatten_results=False在创建源代码时添加直接在 Beam Python 中读取嵌套结果:

lines = p | io.Read(io.BigQuerySource('project:test.beam_in', flatten_results=False))

在此处查看源代码。

于 2018-01-16T22:37:55.553 回答