В настоящее время я использую Hive, и у меня есть таблица с поля user_id и значение. Я хочу заказать значения в порядке убывания в пределах каждого user_id, а затем выпустить только 100 лучших записей для каждого user_id. Это код, который я пытаюсь использовать:Hive - top n записей внутри группы
DROP TABLE IF EXISTS mytable2
CREATE TABLE mytable2 AS
SELECT * FROM
(SELECT *, rank (user_id) as rank
FROM
(SELECT * from mytable
DISTRIBUTE BY user_id
SORT BY user_id, value DESC)a)b
WHERE rank<101
ORDER BY rank;
Однако, когда я запускаю этот запрос, я получаю следующее сообщение об ошибке:
Error while compiling statement: FAILED: SemanticException [Error 10247]: Missing over clause for function : rank [ERROR_STATUS]
FYI - Мои UserIds являются буквенно-цифровой.
Может ли кто-нибудь помочь?
Заранее спасибо.
Добавить комментарий
Спасибо - вопрос теперь отсортирован. – Maeve90