天天看點

HIVE json格式資料的處理

在hive 避免不了Jason格式的話,可以使用如下兩個函數

HIVE直接讀入json的函數有兩個:

(1)get_json_object(string json_string, string path)

傳回值: string  

說明:解析json的字元串json_string,傳回path指定的内容。如果輸入的json字元串無效,那麼傳回NULL。  

舉例:  

hive> select  get_json_object(‘{“store”:{“fruit”:\[{"weight":8,"type":"apple"},{"weight":9,"type":"pear"}],  “bicycle”:{“price”:19.95,”color”:”red”}}, “email”:”amy@only_for_json_udf_test.net”,   “owner”:”amy” } ‘,’$.owner’) from dual;  

結果:amy 

注:如果ower是一個數組 path還可以用$.owner[0] 這樣的坐标來擷取具體的資料

這個函數每次隻能傳回一個資料項。

(2)json_tuple(jsonStr, k1, k2, ...)

參數為一組鍵k1,k2……和JSON字元串,傳回值的元組。該方法比 <code>get_json_object</code> 高效,因為可以在一次調用中輸入多個鍵

create table 2014jrtest as select json_tuple(line,'GPS_LAT','GPS_LONG','GPS_SPEED','GPS_STATE','GPS_TIME','IMEI','after_oxygen_sensor','air_condion_state','bdoneNo_after_mileage','bdoneNo_zero_mileage','db_speed','direction_angle','front_oxygen_sensor','instant_fuel','speed','torque','total_fuel') from 2014test;

本文轉自茄子_2008部落格園部落格,原文連結:http://www.cnblogs.com/xd502djj/p/6962040.html,如需轉載請自行聯系原作者。