【问题标题】:Aggregating strings with hortonworks hadoop hive使用 hortonworks hadoop hive 聚合字符串
【发布时间】:2018-08-05 20:41:59
【问题描述】:

我正在尝试将安全表展平以在每个国家/地区制作一行。如果这对所需的 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

非常感谢

【问题讨论】:

    标签: string hadoop hive hiveql hortonworks-data-platform


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-12-17
        • 2017-10-04
        • 1970-01-01
        • 2014-08-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多