1、需求:業務中需要將發票開具明細作為發票開具表中一個字段,使用hive中array嵌套map解決該問題
2、創建hive表
1 CREATE TABLE `51fp_tmp`.`test`( 2 `fp_dm` string, 3 `mxList` array<map<string,string>> 4 ) 5 ROW FORMAT DELIMITED FIELDS TERMINATED BY '\0x01' 6 COLLECTION ITEMS TERMINATED BY ',' 7 MAP KEYS TERMINATED BY ':' 8 LINES TERMINATED BY '\n';
//ROW FORMAT DELIMITED FIELDS TERMINATED BY '\0x01' 字段分隔
//COLLECTION ITEMS TERMINATED BY array及map中一個字段各個item的分隔符
//MAP KEYS TERMINATED BY ':' key value分隔符
//LINES TERMINATED BY '\n' 行分隔符
3、hive中獲取array嵌套map字段值
mxList字段值如下:
獲取array中第二個map中的key="ggxh"的value
4、參考資料
hive中array嵌套map以及行轉列的使用 https://www.cnblogs.com/30go/p/8328869.html
hive 存儲,解析,處理json數據 https://www.cnblogs.com/qiaoyihang/p/8729368.html
hive array、map、struct使用 https://www.iteye.com/blog/daizj-2255031