使用hortonworks hadoop配置单元聚合字符串

o0lyfsai  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(291)

我正试图将一个安全表展平,以便在每个国家列一行。我使用hive作为hortonworks中当前的执行引擎,如果这对所需的sql有影响的话。
下面是我努力实现的一个例子。

(country, Name)
(US, 'Matt'),
(US, 'Rocks'),
(GB, 'Stylus'),
(FR, 'Foo'),
(FR, 'Bar'),
(FR, 'Baz')

我要查找的查询结果:

Country Name
----------- ------------------------------
GB           Stylus
FR           Bar, Baz, Foo
US           Matt, Rocks

我真不知道从哪里开始。有人知道吗?我在另一个线程上发现了一些语法,它们在mssql中运行良好,但在hortonworks中却没有。
连接/聚合字符串的最佳方式
非常感谢

1zmg4dgp

1zmg4dgp1#

我对hadoop不是很熟悉,但是下面的列到hive中逗号分隔的值可以这样做:

SELECT country, collect_set(Name)
FROM your_table
GROUP BY country;
v7pvogib

v7pvogib2#

使用 collect_set 用于将字符串聚合到数组和 concat_ws 将数组转换为逗号分隔的字符串

select country, concat_ws(',', collect_set(Name)) 
   from table
 group by country

相关问题