天天看點

利用hive中的行轉列列轉行處理字段中逗号分隔的重複資料

今天同僚問了我個問題,想對表中字段為’,'分隔組成的資料進行去重,例如一個資料列中存的是“宋小寶,宋小寶,田野,宋曉峰,宋曉峰”,處理後的展示結果為“宋小寶,田野,宋曉峰”。當時時間比較着急,我就用行轉列 再轉行處理了,不知道有沒有更優化的寫法,先記錄下來吧!有簡單方法的同學可以評論一下讓我學習學習,非常感謝!

直接上代碼展示

select sb.ssss,concat_ws(',',collect_set(sb.xxx))
from 
(
select   a.ssss,b.xxx  from   
(  select 'a' as ssss,'宋小寶,宋小寶,田野,宋曉峰,宋曉峰' as bbb ) a  lateral view explode(split(A.bbb ,','))b as xxx)sb
group by sb.ssss
           

我這晚上回家進行記錄的,當時隻給他拍了個照片發過去了,是以沒法截圖了,你們可以看下最後的展示結果。

結果

利用hive中的行轉列列轉行處理字段中逗号分隔的重複資料

臨時通知明天要去加班一天,各位晚安。