Функциональность номера строки в Hive

Как я могу сгенерировать номера строк для существующей таблицы при выполнении запроса выбора?
Например:

select row_number(), * from emp;

Я использую улей 0,13. Я не могу получить доступ к внешним банкам или udf-файлам в моей среде. Основные файлы в формате паркета.

Заранее спасибо!

 Samson Scharfrichter28 мая 2016 г., 13:32
Если вы попытаетесь запустить этот вид аналитических функций на больших наборах данных (то есть более 50 миллионов строк), то будьте внимательны, чтобы проверить согласованность данных. Я видел тонкоеповреждение данных происходят вдетерминированный путь с V0.13 и V0.14 - номера строк были в последовательности, но несколько тысяч строк были отброшены и заменены копией других строк. Но это может быть специфичным для Hive-on-TEZ.

Ответы на вопрос(2)

ROW_NUMBER() этооконная функция поэтому его необходимо использовать вместе сOVER пункт. Просто не указывайтеPARTITION.

 patricksurry02 нояб. 2017 г., 13:27
по-видимому, требуется явное упорядочение по крайней мере в моей версии hiveql, напримерSELECT *, ROW_NUMBER() OVER (ORDER BY some_emp_field) AS row_num FROM emp

row_number () может быть использован для поисканапримернедавний визит пользователя на ваш сайт.

SELECT user_id,user_name,timestamp
FROM (
SELECT user_id,user_name,timestamp,row_number() over (partition by userid order by timestamp desc) as visit_number 
from user) user_table
    WHERE visit_number = 1
 syadav18 июн. 2016 г., 07:45
Пожалуйста, рассмотрите возможность добавления комментария, как этот ответ может быть улучшен?
 Zhongzhi11 февр. 2017 г., 22:44
По крайней мере, полезно для меня.
 gobrewers1428 мая 2016 г., 00:32
Как это связано с вопросом ОП?
 syadav28 мая 2016 г., 00:43
@ GoBrewers14 - я добавил еще один слой объяснения в свой ответ, сгенерировал row_number и определил в нем смысл. Надеюсь это поможет :)

Ваш ответ на вопрос