Импала - как преобразовать столбец с разделителями в несколько строк

Значения оценок столбцов разделяются запятыми. Каждый идентификатор пользователя имеет как минимум оценку, и нет верхнего предела для количества оценок для каждого идентификатора пользователя.

+--------+---------+
| userid | scores  |
+--------+---------+
| u1     | C,B,A   |
| u2     | A       |
| u3     | A,C     |
+--------+---------+

Я хочу получить результат с помощью 'select ...' sql

+--------+---------+
| userid | score   |
+--------+---------+
| u1     | C       |
| u1     | B       |
| u1     | A       |
| u2     | A       |
| u3     | A       |
| u3     | C       |
+--------+---------+

В улье разнесенный вид сбоку (split (score, ',')) может реализовать требование,

select userid, score from my_table lateral view explode(split(scores,',')) scores as score;

Однако импала не поддерживает взрыв.

Есть ли альтернативный способ реализовать это в импале?

Это может вам помочь: stackoverflow.com/questions/37399187/…

Radim Bača 11.04.2018 13:13

это не работает, функция split_part просто разделяет строку, но не может преобразовать в несколько строк

liznzn 11.04.2018 14:18

Могу я предположить, что в вашей таблице максимум 5 различных оценок?

Radim Bača 11.04.2018 14:24

Каждый ИД пользователя имеет как минимум оценку, верхнего предела для количества оценок каждого ИД пользователя нет.

liznzn 12.04.2018 03:49

Каков тип данных для оценок столбцов?

Vijay Krishna 18.04.2018 07:39

тип данных оценок - строка

liznzn 26.04.2018 04:44
0
6
1 548
0

Другие вопросы по теме