hive 函數--多行數據轉化成 map 類型

最近工作中向別的部門提供接口數據時有這樣的需求

將下面的表格形式的數據的後兩列輸出爲map形式

即這個形式:


然後用這個函數處理:

str_to_map(concat_ws(',',collect_set(concat_ws(':',a.寄件省份,cast(a.件量 as string)))))  as 寄件省份件量分佈

注意:collect_ws這個函數會對元素數組去重,如果不去重用collect_list這個函數

          str_to_map函數也會去重,如果傳入的鍵值對有重複,只保留一個。如果還是要傳入重複的鍵值對,可以用下面的函數:

regexp_replace(concat('{"',cast( concat_ws(',',collect_list(concat_ws(':',寄件省份,cast(件量 as string)))) as string),'"}'),',','","')  as complaintDetail

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章