#sql #hadoop #group-by #hive
#sql #hadoop #группировка по #улей
Вопрос:
У меня есть таблица улья t_user_action:
и я хочу написать sql-улей, возвращающий список действий каждого пользователя. Это должно быть:
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
...
как я могу получить этот результат с помощью hive 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>]
Ответ №1:
Вы можете использовать функцию collect_set()
SELECT uid,COLLECT_SET(CONCAT('<',timestamp, ',' ,action,'>'))
FROM t_user
GROUP BY uid
Комментарии:
1. Спасибо! это то, что я хочу.