亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

java實現往hive 的map類型字段寫數據

瀏覽:3日期:2022-08-08 18:06:20
往hive 的map類型字段寫數據

該表的該字段類型是map<string,string>

對應類的該屬性的類型需要定義成String,不可定義成Map<String,String> !!

方法1:

建表語句定義map的分隔符:

row format delimited fields terminated by ’|’ collection items terminated by ’,’ map keys terminated by ’:’ NULL DEFINED AS ’’

然后在java中封裝好map后,不可直接把map.toString()的字符串寫入字段(會有“=”,不能正確組成JSON格式的內容),也不可序列化為JSON格式的字符串后寫入字段(會加很多“”)!需要自己定義toString的方法:

public static String insertToMap(Map<String, String> map) {StringBuilder sb = new StringBuilder();Set<String> set = map.keySet();for (String s : set) { sb.append(s).append(':').append(StringUtils.isBlank(map.get(s)) ? 'NULL' : map.get(s)).append(',');}String str = sb.toString();return str.substring(0, str.length() - 1); }

字符串是不帶雙引號和兩端花括號的字符串,這樣插入到字段時,hive會自動為key和value都添加雙引號,也會在兩端添加花括號!(為啥為空時需要把value設置成NULL?如果為空不寫時,怕hive處理時出錯,可能會處理成帶四個雙引號的NULL,所以手動指定空為'NULL'字符串)

方法2:

建表語句不用定義map的分隔符:

然后在java中封裝好map后,不可直接把map.toString()的字符串寫入字段,也不可序列化為JSON格式的字符串后寫入字段!需要自己定義toString的方法:

public static String insertToMap(Map<String, String> map) {StringBuilder sb = new StringBuilder();Set<String> set = map.keySet();for (String s : set) { sb.append(s).append('003').append(StringUtils.isBlank(map.get(s)) ? 'NULL' : map.get(s)).append('002');}String str = sb.toString();return str.substring(0, str.length() - 1); }

得到的則是正確的字段內容!

hive中默認是用“003”分隔key與value,用“002”分隔兩個鍵值對!

以上是今天嘗試好幾種方法整理后的結論!

hive-map類型字段的定義與插入

map類型定義了一種kv結構,在hive中經常使用。

如何定義map類型呢?

create table employee(id string, perf map<string, int>) ROW FORMAT DELIMITEDFIELDS TERMINATED BY ’t’ COLLECTION ITEMS TERMINATED BY ’,’ MAP KEYS TERMINATED BY ’:’;

其中fields是字段分隔符,collection是每個kv對的分隔符,map keys是k與v的分隔符。

導入數據時,只需要按對應分隔符處理好數據即可。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 伊人久久丁香色婷婷啪啪 | 亚洲中字幕永久在线观看 | 自拍 亚洲 欧美 | 午夜欧美成人久久久久久 | 国产原创麻豆精品视频 | 九九夜色| 黄色网在线免费观看 | 九九精品视频在线观看 | 久久国产精品免费网站 | 午夜一级福利 | 天天色综合图片 | 久久一区二区精品 | 欧美毛片免费 | 美国毛片亚洲社区在线观看 | 精品一区二区三区在线视频观看 | 国产精品福利久久香蕉中文 | 亚洲国产综合视频 | 青草娱乐极品免费视频 | 亚洲视频手机在线 | 黄色大片网| 亚洲日韩中文字幕在线播放 | 香蕉视频免费播放 | 日本免费乱人伦在线观看 | 亚洲~首页~原始 | 国产精品视频网站你懂得 | 欧美限制级在线 | 综合网视频 | 欧美性黑吊xxx | 三级黄色高清视频 | 亚洲成人在线播放视频 | 久久99精品久久久久久秒播放器 | 高清在线一区二区三区亚洲综合 | 国产自一区| 亚洲欧美日韩一区高清中文字幕 | 欧美亚洲一区二区三区在线 | 亚洲国产精品综合久久2007 | 好爽好黄的视频 | 欧美二区三区 | 亚洲国产精品一区二区首页 | 国产福利在线永久视频 | 久久国产精品久久久久久久久久 |