这篇博文主要分享在Hive里面使用get_json_object函数来解析json格式数据的具体用法。
在数据表test中有一列jsonData,其数据如下:
jsonData = '{
"ID":121,
"message":{
"name":"Asher",
"location":[{"county":"浦东","city":"上海"},
{"county":"西直门","city":"北京"}]
}
}'
--PS:jsonData列数据为字符串格式,外面是**单引号**,里面是**双引号**(这个不能弄错了,否则不对)
1.提取jsonData第一层数据ID
select get_json_object(jsonData,'$.ID') from test
--输出
>121
2.提取jsonData第二层数据name
select get_json_object(jsonData,'$.message.name') from test
--输出
>Asher
3.提取jsonData第二层数据location的第一项
select get_json_object(jsonData,'$.message.location[0]') from test
--输出
>{"county":"浦东","city":"上海"}
4.提取jsonData第二层数据location的第一项的city
select get_json_object(jsonData,'$.message.location[0].city') from test
--输出
>上海
5.提取jsonData第三层数据city
select get_json_object(jsonData,'$.message.location.city') from test
--输出
>["上海","北京"]
码字不易,喜欢请点赞,谢谢!!!