如何在Hive中使用公共列合并两行数据

时间:2018-07-26 02:12:51

标签: hive hiveql

如何使用配置单元中的公共列合并两行数据,我尝试使用以下格式,但是我错过了顺序。

输入数据

column1         column2
1000000002      AA-Test1:1
1000000002      BB-Test2:1 

所需结果

1000000002      AA-Test1:1##BB-Test2:1

但是我越来越

1000000002      BB-Test1:1##AA-Test2:1

我不想在添加时翻转值。

我尝试了以下查询

CREATE TABLE Tabel1
AS
SELECT column1, concat_ws("##", COLLECT_SET(column2))
AS column2
FROM Table2 group by column1 order by column2;

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

使用子查询按column2排序,然后使用concat_wscollect_list

create table tabel1
as
select 
    a.column1, 
    concat_ws("##", collect_list(a.column2)) as column2
from ( select column1,column2 from Table2 sort by column2 ) a
group by a.column1;