我可以通过单个查询将多个 BigQuery 列合并到一个重复字段中吗?
Posted
技术标签:
【中文标题】我可以通过单个查询将多个 BigQuery 列合并到一个重复字段中吗?【英文标题】:Can I consolidate several BigQuery columns into a single repeated field via a single query? 【发布时间】:2015-08-23 20:34:29 【问题描述】:我在 BigQuery 中有一个大表,如下所示:
ref_id code1 code2 code3 code4 code5 code6 code7 code8
1 47 742 89 374 893 27 4 68
2 766 9 84 8 4576 49 76 4
我想使用 BigQuery 查询将此表转换为对所有代码列使用重复字段的格式。所以结果应该是这样的(用 JSON 来表示代码的重复字段):
[
"ref_id": 1,
"codes": [
46,
742,
89,
374,
893,
27,
4,
68
]
,
"ref_id": 2,
"codes": [
766,
9,
84,
8,
4576,
49,
76,
4
]
]
我可以通过输出到另一个表的 BigQuery 查询来做到这一点吗?我知道我可以下载数据,将其重新格式化为 JSON,然后重新插入,但我希望可以通过对原始数据的查询来完成数十亿行。
【问题讨论】:
【参考方案1】:这是一种方法 - 使用“,”作为分隔符连接代码,然后使用 SPLIT 生成 REPEATED 字段,即
select id, split(concat(string(code1), ",", string(code2))) codes from
(select 1 id, 47 code1, 742 code2),
(select 2 id, 766 code1, 9 code2)
【讨论】:
不行,nest 只能取一个字段以上是关于我可以通过单个查询将多个 BigQuery 列合并到一个重复字段中吗?的主要内容,如果未能解决你的问题,请参考以下文章
使用 bigquery 和单个查询进行分区,根据日期将表拆分为多个表
如何使用 Pandas 将多个 csv 文件中的单个数据列合并为一个?