Есть ли способ извлечь уникальные значения из разделенных запятыми строковых значений в Hive? - PullRequest
0 голосов
/ 06 мая 2019

Я хочу извлечь уникальные значения из строкового значения через запятую в таблице улья.

Как есть:

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

Ожидаемый результат:

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

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

Пожалуйста, предложите.

1 Ответ

2 голосов
/ 06 мая 2019

explode значения CSV в одну строку для каждого значения путем split связывания строки CSV и использования collect_set в разделенных значениях для удаления дубликатов.Результатом будет array и для получения значения csv используйте concat_ws.

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
...