2016-11-29 69 views
1

如何使用Apache Beam Python SDK讀取嵌套結構?如何使用Dataflow Python SDK讀取BigQuery嵌套表

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" 

是否可以讀取嵌套結構?

回答

1

這是BigQuery的一個屬性。執行這種查詢的兩種方法是禁用結果展平(通過BigQuery)或明確展平查詢中的字段。

對於當前的Python SDK,只有後者可用 - 請參閱「Flattening Google Analytics data (with repeated fields) not working anymore」以獲取指導如何調用FLATTEN函數的指南。

如果您打算訂閱更新或討論,禁用展平的功能將以BEAM-877的形式提交。

+0

謝謝。有趣的是,Java SDK允許沒有任何額外配置的嵌套結構。 –

1

現在你可以直接在梁的Python創建源時添加flatten_results=False閱讀嵌套結果:

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

見源here