web-dev-qa-db-ja.com

Hiveの行番号機能

選択クエリの実行中に既存のテーブルの行番号を生成するにはどうすればよいですか?
例えば:

select row_number(), * from emp;

Hive 0.13を使用しています。環境内の外部jarまたはudfsにアクセスできません。基礎となるファイルは寄木細工の形式です。

前もって感謝します!

9
Gayatri Mahesh

ROW_NUMBER()ウィンドウ関数 であるため、OVER句と組み合わせて使用​​する必要があります。 PARTITIONを指定しないでください。

SELECT *, ROW_NUMBER() OVER () AS row_num
FROM emp
--- other stuff
23
gobrewers14

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
6
syadav