今天要講取如何在hive中實作group_concat的實作方法,喜歡的友友記得點贊➕關注,我們一起學習一起進步哦[來看我]。
大家都知道,mysql中的group_concat分組連接配接功能相當強大,可以先分組再連接配接成字元串,還可以進行排序連接配接。但是hive中并沒有這個函數,那麼hive中怎麼實作這個功能呢?
這裡要用到:concat_ws函數和collect_list、collect_set 函數來實作相同的功能。
1. 建立測試表(無分區表):
2.實作方法一: concat_ws + collect_set + group by
1)SQL代碼
select
id,
concat_ws(',',collect_set(content)) as con_con,
concat_ws(',',collect_set(comment)) as con_com
from db_name.test_tb
group by id
2)結果解讀:無序且不對應(con_con與con_com的位置)
—— 但是注意 collect_set會将重複的資料删除,因為集合的性質。
每次運作連接配接的結果順序都可能不一樣。
3. 實作方法二:concat_ws + collect_list + group by
1)SQL代碼
select
id,
concat_ws(',',collect_list(content)) as con_con,
concat_ws(',',collect_list(comment)) as con_com
from db_name.test_tb
group by id
2)結果解讀:對應(con_con與con_com的位置)但無序。