【发布时间】:2019-02-25 18:48:28
【问题描述】:
我有一个 hive 表,它有 3 列,其中组合 1 列是一个字符串,第二个是字符串化的 json 数组,第三个是字符串化的 json 对象。我想从字符串化的 json 对象中检索一个字段,其相关键可以通过将第一列与第二个数组中的字符串化 json 数组中的第一个元素组合来获得。
get_json_object(
get_json_object(
column3,concat(
"$.",column1,"__",
get_json_object(
column2,"$[0]"
))),
"$.fieldofinterest")
as field_of_interest
我编写了上述构造,以检索感兴趣的字段。
当这是作为select...from 语句的一部分编写时,我在field_of_interest 列中得到正确的输出。
当它作为create table t1 as select...from 语句的一部分编写时,将创建表,其中所有行的field_of_interest 为NULL。
create...select 语句没有失败。所有其他列都很好地填充。我在其他列中使用get_json_object,它们没有嵌套。他们很好。只有这一列没有。
这可能是什么原因造成的?我该如何开始调试呢?其他堆栈溢出答案没有运气。
【问题讨论】: