BigQuery:选择REPEATED字段作为REPEATED字段

时间:2016-06-21 16:28:02

标签: google-bigquery

我通过Avro将数据加载到BigQuery中,我的一个列是一个数组。然而,这似乎加载正常,因为BigQuery将root作为列名称的前缀附加,我需要将所有列选择为适当的名称。我已经包含了--noflatten_results标志但查询失败了"无法为字段order_ids创建有效的输出模式。尝试在最外面的SELECT"

中将order_ids重命名为root.order_ids

查询:

SELECT
root.a AS a,
root.b AS b,
root.orders_ids AS order_ids,
root.c AS c,
root.d AS d 
FROM dataset.table

1 个答案:

答案 0 :(得分:2)

使用旧版SQL很难从重复字段中删除父记录。 --noflatten_results是尽力而为,并且不支持重复字段上的许多转换,例如重命名。

如果使用标准SQL,则应该非常简单。默认情况下,标准SQL查询的结果是不平坦的,并且引用SELECT子句中的记录中的字段会将其从父记录中删除。

SELECT root.* from dataset.table;

使用CLI,您可以通过将--nouse_legacy_sql添加到命令行来指定使用标准SQL。

相关文档: