Hive優雅的處理Json數據

準備數據 

1SOH{"name":"aaa","cource":"english","score":"90"},{"name":"bbb","cource":"chinese","score":"80"},{"name":"ccc","cource":"math","score":"70"}
2SOH{"name":"aaa","cource":"english","score":"90"},{"name":"bbb","cource":"chinese","score":"80"},{"name":"ccc","cource":"math","score":"70"}
3SOH{"name":"aaa","cource":"english","score":"90"},{"name":"bbb","cource":"chinese","score":"80"},{"name":"ccc","cource":"math","score":"70"}

 

建表

drop table test_json;
create table test_json(
id string
,info string
)
COMMENT 'test'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001'
                     LINES  TERMINATED BY '\n'
NULL DEFINED AS ''
STORED AS TEXTFILE;

 

數據入庫

load data local inpath '/home/dev/temp/a.txt' overwrite into table test_json;

 

成功解析

select
 id
,get_json_object(json,'$.name')
,get_json_object(json,'$.cource')
,get_json_object(json,'$.score')
from test_json lateral view explode(split(regexp_replace(info,'\\}\\,\\{','\\}\\|\\{'),'\\|')) tmp as json;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章