每天一点点,记录工作中实操可行
hive中有个json数据长这样
{“orderId”:“2114168344498220156”,“rateId”:“48417819”,“shopId”:“162482101”,“tagList”:[],“tags”:""}
想从中解析出orderid
select get_json_object(rate_tag,'$.orderId') order_id
from table_name
可以得到结果
语法:get_json_object(param1,"$.param2")
param1:需要解析的json字段
param2:遇到数组就用 [0,1,2…] 0,1,2是数组对应的元素,遇到jsonObject直接用 ".key"取出想要获取的value
如:
[{"name":"王二狗","sex":"男","age":"25"},{"name":"李狗嗨","sex":"男","age":"47"}]
1:取第一个json对象:
注意:第一个对象的下标是0哦~~~
SELECT get_json_object(xjson,"$.[0]") FROM person
结果:
{"name":"王二狗","sex":"男","age":"25"}
2:取第一个json对象中的name字段:
SELECT get_json_object(xjson,"$.[0].name") FROM person;
结果:
王二狗