本文將介紹兩個使用hive解析json的小demo
1.[hadoop@hadoop001 jsondata]$ more rating.json
.......很多資料.....
hive (hwzhdb)> create table parsejson(
> jsondata string
> );
oktime taken: 0.146 seconds
hive (hwzhdb)> load data local inpath '/home/hadoop/data/jsondata/rating.json' overwrite into table parsejson;
loading data to table hwzhdb.parsejson
table hwzhdb.parsejson stats: [numfiles=1, numrows=0, totalsize=63602280, rawdatasize=0]
oktime taken: 1.3 seconds
hive (hwzhdb)> select * from parsejson limit 10;
okparsejson.jsondata
time taken: 0.075 seconds, fetched: 10 row(s)
##使用json_tuple解析json資料,裡面的引數填寫json原資料的key,as別名是固定寫法,此時取出來的都是實際的字段,並且都為string型別的
hive (hwzhdb)> select json_tuple(jsondata,'movie','rate','time','userid') as (movieid,rate,time,userid)
> from parsejson limit 10;
okmovieid rate time userid
1193 5 978300760 1
661 3 978302109 1
914 3 978301968 1
3408 4 978300275 1
2355 5 978824291 1
1197 3 978302268 1
1287 5 978302039 1
2804 5 978300719 1
594 4 978302268 1
919 4 978301368 1
2.parse_url_tuple函式,乙個解析ip位址的小demo
[hadoop@hadoop001 jsondata]$ cat ipdata.txt --兩條資料
##建立新錶,然後將原表資料插入新錶中
HIVE解析json格式資料
id conditions 312 313 第一步 我們可以看到conditions欄位下的json格式資料,是json串裡面套著類似於list結構,我們先取出。get json object conditions,diyitems 取出之後資料是這樣的 第二步 我們把list結構中每個元素拿出來形...
Hive解析json格式字段
新建hive表 create external table asmp.json test id string,info string row format delimited fields terminated by t lines terminated by n location hdfs nam...
Hive 解析複雜json格式字段
本篇文章中所使用的方法來自部落格hive中的lateral view 與 explode函式的使用,感謝大佬的分享。一.問題背景 資料來源hive資料表結構如下 其中info欄位的資料型別為string格式的複雜json結構,例如 需求現在需要統計每個id 中info欄位所對應的使用者數量,而最關鍵...