将多列转换为 Bigquery 中的记录
Posted
技术标签:
【中文标题】将多列转换为 Bigquery 中的记录【英文标题】:transform multiple columns to records in Bigquery 【发布时间】:2021-02-15 14:54:23 【问题描述】:我正在尝试将平面表转换为 Bigquery 中的嵌套表。 如果我想取一行,并将某些列转换为 2 个字段:
-
key.name
key.value
例如,如果我使用这张桌子:
我想将其转换为以下结构:
【问题讨论】:
【参考方案1】:您可以将其定义为数组。我建议将它放入一个字符串结构中,这样你就只有一个数组:
select unique_key, cast_number, date,
[struct('block' as key, block as value),
struct('iucr' as key, iucr as value),
struct('primary_type' as key, primary_type as value),
. . .
] as key_values
但是对于您的具体要求:
select unique_key, cast_number, date,
['block', 'iucr', 'primary_type', . . . ] as keys,
[block, iucr, primary_type, . . . ] as values
请注意,这些假设值都是字符串。如果不是,您可能需要转换一些值。
【讨论】:
完美!这就是我要找的。谢谢! 如何处理“数组不能有空元素;写入字段值出错”? @LHA 。 . .我认为错误很明显。您需要删除该列或使用coalesce()
为其赋予不同的值。以上是关于将多列转换为 Bigquery 中的记录的主要内容,如果未能解决你的问题,请参考以下文章
需要将字符串从一列分隔为多列,以';'分隔bigquery中的分隔符
基于 SQL (BigQuery) 中的多列返回许多小数据样本
sql [BigQuery - Facebook产品目录]查询para obtenerelcatálogodeproductos de Kichink。 #facebook #bigqu