我得到了以下BigQuery模式,并且我正在尝试更新event_dim.date
字段:
我使用标准的SQL和新的BigQuery DML尝试了以下查询:
UPDATE `sara-bigquery.examples.app_events_20170113`
SET event_dim.date = '20170113'
WHERE true
但是得到了这个错误:
Error: Cannot access field date on a value with type ARRAY<STRUCT<name STRING, params ARRAY<STRUCT<key STRING,
value STRUCT<string_value STRING, int_value INT64, float_value FLOAT64, ...>>>, timestamp_micros INT64, ...>> at [2:15]
我可以使用下面的查询选择嵌套字段:
SELECT x.date FROM `sara-bigquery.examples.app_events_20170113`,
UNNEST(event_dim) x
但是找不到正确的UPDATE
语法。
发布于 2017-01-13 23:58:59
该查询失败,因为event_dim
是一个结构数组。这应该能起到作用:
UPDATE `sara-bigquery.examples.app_events_20170113`
SET event_dim = ARRAY(
SELECT AS STRUCT * REPLACE('20170113' AS date) FROM UNNEST(event_dim)
)
WHERE true
有关如何在标准SQL中处理数组的更多详细信息,请查看docs。
https://stackoverflow.com/questions/41638651
复制相似问题