如何从 BigQuery 中提取嵌套数据?
Posted
技术标签:
【中文标题】如何从 BigQuery 中提取嵌套数据?【英文标题】:How to extract nested data from BigQuery? 【发布时间】:2021-11-30 18:37:25 【问题描述】:我在 Google Cloud Platform 中有一个使用 BigQuery 和嵌套数据的表,我想将这些数据提取到单行中。
Table
Row | title_localized.text | title_localized.language | title_localized.truncated | publication_date |
---|---|---|---|---|
1 | Revêtements en polyuréthane bicomposants stables | fr | false | 20210107 |
Beständige 2k-pur-beschichtungen | de | false | ||
Resistant 2k-pur coatings | en | false | ||
2 | Revêtements en polyuréthane bicomposants stables | fr | false | 20210507 |
Resistant 2k-pur coatings | en | false | ||
Beständige 2k-pur-beschichtungen | de | false |
我想把这张桌子变成非嵌套形式。
Row | title_localized.text | title_localized.language | title_localized.truncated | publication_date |
---|---|---|---|---|
1 | Revêtements en polyuréthane bicomposants stables | fr | false | 20210107 |
2 | Beständige 2k-pur-beschichtungen | de | false | 20210107 |
3 | Resistant 2k-pur coatings | en | false | 20210107 |
4 | Revêtements en polyuréthane bicomposants stables | fr | false | 20210507 |
5 | Resistant 2k-pur coatings | en | false | 20210507 |
6 | Beständige 2k-pur-beschichtungen | de | false | 20210507 |
试过了,还是不行:
SELECT
title_localized,
publication_date
FROM
`patents-public-data.patents.publications`,
UNNEST(title_localized) as test
有什么想法吗?
【问题讨论】:
【参考方案1】:您的查询几乎是正确的,只是您在查询输出中也包含了数组字段。
此查询不包括未嵌套的数组字段:
SELECT
test.text,
test.language,
test.truncated
FROM
`patents-public-data.patents.publications`,
UNNEST(title_localized) as test
【讨论】:
【参考方案2】:考虑以下方法
select publication_number, local_title.*, publication_date
from `patents-public-data.patents.publications`,
unnest(title_localized) local_title
输出如下
【讨论】:
你试过了吗?它对你有用吗? 是的,我试过了。有效!非常感谢!以上是关于如何从 BigQuery 中提取嵌套数据?的主要内容,如果未能解决你的问题,请参考以下文章
如何将每个给定长度的行的 Bigquery 表提取到 Google Storage 中的 csv 文件?
使用 Apache Beam 以 CSV 格式将 BigQuery 结果写入 GCS
使用 BigQuery 取消嵌套 customDimensions