【发布时间】: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"
请提出建议。
【问题讨论】:
我想从 hive 表中的逗号分隔字符串值中提取唯一值。
原样:
select * from data;
ID ITEMS
123 "ABB","REG","REG", "ABB","XYZ"
预期结果:
select ===some logic=== from data;
ID ITEMS
123 "ABB","REG","XYZ"
请提出建议。
【问题讨论】:
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
【讨论】: