更新 BigQuery 表中的嵌套字段 [英] Update nested field in BigQuery table

查看:33
本文介绍了更新 BigQuery 表中的嵌套字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试执行您认为在 BigQuery 中微不足道的操作;我正在尝试更新 BigQuery 表中的嵌套字段,该表是 360 度导出的结果.

I am trying to perform what, you would think, is a trivial operation in BigQuery; I am trying to update a nested field in a BigQuery table that is the result of a 360 export.

这是我的查询:

#standardSQL
UPDATE `dataset_name`.`ga_sessions_20170705`
SET hits.eventInfo.eventLabel = 'some string'
WHERE TRUE

但我收到此错误消息:

错误:无法访问类型为 ARRAY、isEntrance BOOL、分钟 INT64、...> 的值的字段 eventInfo在 [3:10]

如何更新这个嵌套字段?

How can I update this nested field?

推荐答案

hits 是一个数组,所以需要使用数组子查询来赋值.它看起来像这样:

hits is an array, so you need to use an array subquery to assign to it. It would look something like this:

#standardSQL
UPDATE `dataset_name`.`ga_sessions_20170705`
SET hits =
  ARRAY(
    SELECT AS STRUCT * REPLACE(
      (SELECT AS STRUCT eventInfo.* REPLACE('some string' AS eventLabel)) AS eventInfo)
    FROM UNNEST(hits)
  )
WHERE TRUE;

这篇关于更新 BigQuery 表中的嵌套字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆