Улей возвращает список действий каждого пользователя

#sql #hadoop #group-by #hive

#sql #hadoop #группировка по #улей

Вопрос:

У меня есть таблица улья t_user_action:
uid , timestamp, action
1, 2016-01-01 12:00, login
3, 2016-01-01 12:30, login
1, 2016-01-01 12:05, click
2, 2016-01-01 13:00, login
2, 2016-01-01 13:05, logout
...
и я хочу написать sql-улей, возвращающий список действий каждого пользователя. Это должно быть:
1, [<2016-01-01 12:00, login>, <2016-01-01 12:05, click>]
2, [<2016-01-01 13:00, login>, <2016-01-01 13:05, logout>]
3, [<2016-01-01 12:30, login>]
как я могу получить этот результат с помощью hive sql?

Ответ №1:

Вы можете использовать функцию collect_set()

 SELECT uid,COLLECT_SET(CONCAT('<',timestamp, ',' ,action,'>'))
FROM t_user
GROUP BY uid
 

Комментарии:

1. Спасибо! это то, что я хочу.