【发布时间】:2016-03-03 19:28:52
【问题描述】:
通过导入JSON文件加载GBQ中的重复字段
通过在 BigQuery 中导入包含重复记录的 JSON 文件,您可以创建包含嵌套重复字段的表。
例如,对于架构:
[
{"type":"STRING", "name":"item"},
{"type":"RECORD", "name":"click", "mode":"REPEATED", "fields": [{"type":"TIMESTAMP", "name":"click_time"}, {"type":"STRING", "name":"userid"}]
}
]
您可以加载一个项目点击的 JSON 文件,并为每个项目重复点击。该表将包含字段item、click.click_time 和click.userid。
我的问题
假设您有一个 CSV 文件,该文件已将上述 JSON 项目点击展平,每次点击一行,但 click 和 item 的值重复。您能否将其加载到 GBQ 中并使用 GBQ 查询将其转换为您在加载带有重复字段的 JSON 文件时所拥有的等效表?
对导入的 CSV 表执行 GBQ 查询后生成的表应包含 click.click_time、click.userid 项作为字段。
【问题讨论】:
-
您能否提供您要加载的文件的样本?
-
Mikhail 打败了我 - 请参阅下面的示例文件和一个很好的答案。我能够实现 Mikhail 的解决方案,以及涉及多个 GROUP BY 字段的模式,如 item、item_category1、item_category2,具有关联的 clicks.click_time、clicks.userid。 Mikhail 说明的 UDF 解决方法比尝试使用 NEST 更灵活,尽管正如他在另一篇文章中提到的那样,它可能会导致更高的计费水平。
标签: google-bigquery