hive儲存複雜的json格式

2021-10-02 03:48:13 字數 1106 閱讀 7825

1.hive復合資料型別

array < data_type >

map < primitive_type, data_type >

struct < col_name : data_type [comment col_comment], …>

2.json建構於兩種結構

「名稱/值」對的集合(a collection of name/value pairs)。不同的語言中,它被理解為物件(object),紀錄(record),結構(struct),字典(dictionary),雜湊表(hash table),有鍵列表(keyed list),或者關聯陣列 (associative array)。 json物件封裝在大括號內。空物件可以表示為

值的有序列表(an ordered list of values)。在大部分語言中,它被理解為陣列(array)。陣列封裝在方括號內[ ]。空陣列可以表示為 [ ]

3.json結構和hive復合資料型別對應關係

| json物件 | map < primitive_type, data_type >/struct < col_name : data_type [comment col_comment], …> |

| json陣列 | array < data_type > |

注意:1.在最外層物件內的key:val,直接為表的字段

2.最內層物件最好定義為map型別,其他巢狀物件定義為struct。map比struct優點是不需要知道kv鍵值對的個數,struc必須要指定字段值。缺點是map的key是primitive_type(原始資料型別)

例子:

原始資料,]

}]}建表語句

create table test

(error int

,status string,

results array>

>>

)row format serde 'org.openx.data.jsonserde.jsonserde'

stored as textfile;

![在這裡插入描述]

Hive 解析複雜json格式字段

本篇文章中所使用的方法來自部落格hive中的lateral view 與 explode函式的使用,感謝大佬的分享。一.問題背景 資料來源hive資料表結構如下 其中info欄位的資料型別為string格式的複雜json結構,例如 需求現在需要統計每個id 中info欄位所對應的使用者數量,而最關鍵...

Hive中儲存json格式的資料

啟動hadoop start all.sh 啟動hive hive 載入hcatalog包,此包已經包含在hive中 add jar hive目錄 hcatalog share hcatalog hive hcatalog core 1.2.0.jar 準備一批json資料 將資料複製在乙個檔案裡面...

hive儲存格式

textfile 預設格式,行儲存,匯入資料時直接把資料檔案拷貝到hdfs的hive表目錄 hive location 資料檔案可先經過gzip等壓縮,再導hive表 系統自動檢查,執行查詢時自動解壓 但使用這種方式,hive不會對資料進行切分,從而無法對資料進行並行操作.優點 資料載入快 load...