一、get_json_object
函数的作用:用来解析json字符串的一个字段:
-
select get_json_object(flist,'$.filtertype') as filtertype
-
,get_json_object(flist, '$.filtersubtype')as filtersubtype
-
,get_json_object(flist, '$.filtername') as filtername
-
from aaaaaaa
运行结果如下(只解析了一条数据):
对于jsonArray(json数组),如person表的xjson字段有数据:
[{"name":"王二狗","sex":"男","age":"25"},{"name":"李狗嗨","sex":"男","age":"47"}]
取出第一个json对象,那么hive sql为:
SELECT get_json_object(xjson,"$.[0]") FROM person;
结果是:
{"name":"王二狗","sex":"男","age":"25"}
取出第一个json的age字段的值:
SELECT get_json_object(xjson,"$.[0].age") FROM person;
结果
25
二、json_tuple
函数的作用:用来解析json字符串中的多个字段
-
select a.flist
-
,b.filtertype
-
,b.filtersubtype
-
,b.filtername
-
from aaaaaaaaa a
-
lateral view json_tuple(flist,'filtertype', 'filtersubtype', 'filtername') b as
filtertype, filtersubtype,filtername;
运行结果如下: