Hive 表存取 json 数据

1. 建表

create table json_temp(  
appkey string,   
jsondata string  
)   
row format delimited   
fields terminated by '|'   
stored as textfile ; 

2. 导入数据

appkey001|{"count":2,"usage":91273,"pkg":"com.example.gotest"} 
appkey001|{"count":234,"usage":9876,"pkg":"com.example.gotest"}
appkey001|{"count":34,"usage":5432,"pkg":"com.example.msg"}

load data local inpath '/home/bigdata/my/test-json-data.log' overwrite into table json_temp;

3. 查询数据

-- 使用 get_json_object 函数
select t.appkey, get_json_object(t.jsondata,'$.count'), get_json_object(t.jsondata,'$.usage') from json_temp t;

-- 使用 lateral view + json_tuple 函数
select t1.appkey, t2.* from json_temp t1 lateral view json_tuple(t1.jsondata,'count','usage') t2 as t2_count, t2_usage; 

查出的来结果如下 

appkey001    2    91273
appkey001    234    9876
appkey001    34    5432

转载于:https://my.oschina.net/zdtdtel/blog/1616120

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值