在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,如需轉載請自行聯系原作者。