hive中解析json陣列

2021-09-25 19:27:20 字數 978 閱讀 1616

注意: json 陣列中的json資料不能在巢狀json陣列,否則會解析失敗。

這裡先介紹一下explode的使用方法。

explode(array)

函式說明:explode的引數是陣列,提供了類似於列轉的功能;假如引數陣列長度為3,則返回的記錄會是3行,且每列為各個陣列項,如下:

select explode(array('a','b','c')) as col;

select tf.* from (select 0 from dual) t lateral view explode(array('a','b','c')) tf as col;

執行結果:

col cb

a具體**如下:

select ss.col

from (

from dual) pp

lateral view explode(pp.str) ss as col ;

說明:因為原資料是string(並不是真正的陣列型別)型別的,所以無法直接使用explode函式。

1.regexp_extract('***','^\\[(.+)\\]$',1) 這裡是把需要解析的json陣列去除左右中括號,需要注意的是這裡的中括號需要兩個轉義字元\\[。

2.regexp_replace('***','\\}\\,\\\\|\\|\\{') 把json陣列的逗號分隔符變成兩根豎線||,可以自定義分隔符只要不在json陣列項出現就可以。

3.使用split函式返回的陣列,分隔符為上面定義好的。

4.lateral view explode處理3中返回的陣列。

另外,hive中的json_tuple解析json比get_json_object更方便。

from (

from dual) pp

lateral view explode(pp.str) ss as col 

Hive解析Json字串(含json陣列)

由於字段內容為json字串,隨需要用到get json object string json string,string path 最初只是知道該方法可以解析簡單的json字串,比如 select get json object key1 結果 value1但由於目標欄位中的json字串含有json...

Hive解析json格式資料

本文將介紹兩個使用hive解析json的小demo 1.hadoop hadoop001 jsondata more rating.json 很多資料.hive hwzhdb create table parsejson jsondata string oktime taken 0.146 seco...

HIVE解析json格式資料

id conditions 312 313 第一步 我們可以看到conditions欄位下的json格式資料,是json串裡面套著類似於list結構,我們先取出。get json object conditions,diyitems 取出之後資料是這樣的 第二步 我們把list結構中每個元素拿出來形...