一、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;
運行結果如下: