hive中get_json_object是一个用来处理json数据的方法,非常好用!
1)数据
[{“name”:“大郎”,“sex”:“男”,“age”:“25”},{“name”:“西门庆”,“sex”:“男”,“age”:“47”}]
2)取出第一个json对象
hive (gmall)>
select get_json_object(’[{“name”:“大郎”,“sex”:“男”,“age”:“25”},{“name”:“西门庆”,“sex”:“男”,“age”:“47”}]’,’
[
0
]
′
)
;
结
果
是
:
"
n
a
m
e
"
:
"
大
郎
"
,
"
s
e
x
"
:
"
男
"
,
"
a
g
e
"
:
"
25
"
3
)
取
出
第
一
个
j
s
o
n
的
a
g
e
字
段
的
值
h
i
v
e
(
g
m
a
l
l
)
>
S
E
L
E
C
T
g
e
t
j
s
o
n
o
b
j
e
c
t
(
′
[
"
n
a
m
e
"
:
"
大
郎
"
,
"
s
e
x
"
:
"
男
"
,
"
a
g
e
"
:
"
25
"
,
"
n
a
m
e
"
:
"
西
门
庆
"
,
"
s
e
x
"
:
"
男
"
,
"
a
g
e
"
:
"
47
"
]
′
,
"
[0]'); 结果是:{"name":"大郎","sex":"男","age":"25"} 3)取出第一个json的age字段的值 hive (gmall)> SELECT get_json_object('[{"name":"大郎","sex":"男","age":"25"},{"name":"西门庆","sex":"男","age":"47"}]',"
[0]′);结果是:"name":"大郎","sex":"男","age":"25"3)取出第一个json的age字段的值hive(gmall)>SELECTgetjsonobject(′["name":"大郎","sex":"男","age":"25","name":"西门庆","sex":"男","age":"47"]′,"[0].age");
结果是:25