【发布时间】:2022-07-19 21:36:05
【问题描述】:
我有一个包含多个嵌套和重复字段的字段。它不允许我为任何具有 RECORD 数据类型的子字段插入空值或空数组。
这是一个限制还是有任何解决方法?
【问题讨论】:
标签: google-bigquery
我有一个包含多个嵌套和重复字段的字段。它不允许我为任何具有 RECORD 数据类型的子字段插入空值或空数组。
这是一个限制还是有任何解决方法?
【问题讨论】:
标签: google-bigquery
只是我一直在寻找的问题..没有答案
幸运的是,我找到了解决相同问题的 question - 仅在 update statement
那里的解决方案有效,但它是一个肮脏的黑客 - 将 null 放在一个表达式中,该表达式使用目标类型来寻址一个字段
IF(false, struct_to_set_null, NULL)
struct_to_set_null 是表中的实际字段名称
不幸的是,它不适用于我的场景,因为我使用的 inline select statement 与我的表不在同一范围内
相反,我只是使用了cast 函数(感谢answer)。缺点是我最终得到了非常复杂的表达式,例如:
# this represents a repeated record with a single field of type string
cast(null as Array<struct<STRING>>)
# same thing but with multiple values
cast(null as Array<struct<STRING, INTEGER>>)
从好的方面来说 - 它总是有效的 + 它看起来更清晰和直接(至少对我来说)
希望这篇文章能帮助到那里的人
【讨论】: