1、創建表 createtable.sql中存放的創建表語句如下 執行如下命令 2、導入數據 數據數據文件如下 data.txt 將數據上產到hdfs 載入外部表 在hive命令行執行如下語句 3、查詢數據 get_json_object()函數進行查詢 json_tuple()函數進行查詢 查詢結 ...
1、創建表
createtable.sql中存放的創建表語句如下
create external table adt.jsontest ( appKey string comment "APPKEY", clickJson string comment "測試json" ) partitioned by(dt string comment "按照天進行分區") row format delimited fields terminated by '|' lines terminated by '\n';
執行如下命令
hive -f createtable.sql
2、導入數據
數據數據文件如下
data.txt
apds|{"name":"zhangsan","age":23} apds|{"name":"lisi","age":24} apds|{"name":"wangwu","age":25} apds|{"name":"zhaoliu","age":26}
將數據上產到hdfs
hdfs dfs -copyFromLocal data.txt /data/test/2018-09-10/
載入外部表
在hive命令行執行如下語句
ALTER TABLE adt.jsontest ADD PARTITION (dt="2018-09-10") LOCATION "/data/test/2018-09-10/";
3、查詢數據
get_json_object()函數進行查詢
select get_json_object(t.clickJson,'$.name'),get_json_object(t.clickJson,'$.age') from adt.jsontest t
json_tuple()函數進行查詢
select t2.* from adt.jsontest t1 lateral view json_tuple(t1.clickJson, 'name', 'age') t2 as b1, b2;
查詢結果如下: