使用 hortonworks hadoop hive 聚合字符串

Aggregating strings with hortonworks hadoop hive

我正在尝试将证券 table 展平,以便为每个国家/地区制作一行。如果这对所需的 SQL 有影响,我正在使用 Hive 作为当前在 hortonworks 中的执行引擎。

下面是我试图实现的示例。

(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 中却不行。

Optimal way to concatenate/aggregate strings

非常感谢

我不是很熟悉 Hadoop,但是按照 Column to comma separated value in Hive 你可以做到这一点:

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

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

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