【问题标题】:Is there way to extract unique values from a comma seperated string value in Hive?有没有办法从 Hive 中的逗号分隔字符串值中提取唯一值?
【发布时间】:2024-01-10 21:28:01
【问题描述】:

我想从 hive 表中的逗号分隔字符串值中提取唯一值。

原样:

select * from data;
ID  ITEMS
123  "ABB","REG","REG", "ABB","XYZ"

预期结果:

select ===some logic=== from data;

ID  ITEMS
123  "ABB","REG","XYZ"

请提出建议。

【问题讨论】:

    标签: arrays hive unique


    【解决方案1】:

    explode csv 值通过splitting csv 字符串并在拆分值上使用collect_set 来删除重复项,从而将 csv 值转换为每个值一行。结果将是一个array 并使用concat_ws 获得一个csv 值。

    select id,items,concat_ws(',',collect_set(split_item)) as result
    from data
    lateral view explode(split(items,',')) tbl as split_item
    group by id,items
    

    【讨论】:

      最近更新 更多