hive存储读取json格式的数据

来源:互联网 发布:小米关闭自动更新软件 编辑:程序博客网 时间:2024/06/05 00:26

1. 创建表

CREATE TABLE tmp_json_test (           appkey string,            json string) ROW FORMAT DELIMITED   FIELDS TERMINATED BY '|' STORED AS textfile ;

2. 导入数据,样例如下:

 load data local inpath '/home/jb-gongmingfeng/test_data.log' overwrite into table tmp_json_test;

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"}


3. 读取json的数据有两种方法。

   方法一:

select t.appkey , get_json_object(t.json,'$.count'), get_json_object(t.json,'$.usage') from tmp_json_test t ;


    方法二:

select t1.appkey, t2.* from tmp_json_test t1 lateral view json_tuple(t1.json, 'count', 'usage') t2 as c1, c2;

查询结果相同,如下:

appkey001291273appkey0012349876appkey001345432appkey001563454appkey0013543557appkey0011279090appkey00152145appkey00135673appkey001753457appkey00126879


4. 总结一下,方法一使用函数get_json_object  , 方法二使用函数 json_tuple 。






0 0
原创粉丝点击