hive复杂数据类型查询

l5tcr1uw  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(437)

我试图从源表中查询数据,但无法正确查看结果。
源表结构

c1 string,
c2 string,
c3 string,
temp1 struct
<
s1 : string,
s2 : string,
s3 : string,
temp2 : array<struct<as1 string,as2 :string>>                 
>

我有json格式的数据。
我的json数据格式如下

{"c1":"123","c2":"XYZ","c3":"IIK",
"temp1":{"s1":"low","s2":"45","s3":"yes"},
"temp2":[{"as1":"16-05-1992","as2":"fail"}]
}

根据我的表结构,我应该在struct中有array(struct)。但我得到的数据不是这样的。我分别有struct和array(struct)。现在,当我查询这个表时,我得到了列c1、c2、c3、s1、s2的所有记录,但我没有得到as1和as2列,而是在输出中将temp2本身作为null。我有什么遗漏吗。我应该有这样的数据吗 struct<array<struct>> 还是可以分开 struct 以及 array<struct> 而json-serde在阅读时会很小心

pprl5pva

pprl5pva1#

根据你的数据例子应该是 struct 以及 array<struct> :

c1 string,
c2 string,
c3 string,
temp1 struct
<
s1 : string,
s2 : string,
s3 : string
>,
temp2 : array<struct<as1 string,as2 :string>>

单个json对象应在一行中,不支持多行json:

{"c1":"123","c2":"XYZ","c3":"IIK","temp1":"s1":"low","s2":"45","s3":"yes"},"temp2":[{"as1":"16-05-1992","as2":"fail"}]}

相关问题