最近工作中向別的部門提供接口數據時有這樣的需求
將下面的表格形式的數據的後兩列輸出爲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