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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值