web-dev-qa-db-fra.com

Fonctionnalité de numéro de ligne dans Hive

Comment puis-je générer des numéros de ligne pour une table existante lors de l'exécution d'une requête de sélection?
Par exemple:

select row_number(), * from emp;

J'utilise Hive 0.13. Je ne peux pas accéder aux fichiers jars ou udfs externes dans mon environnement. Les fichiers sous-jacents sont au format parquet.

Merci d'avance!

9
Gayatri Mahesh

ROW_NUMBER() est une fonction de fenêtrage donc elle doit être utilisée en conjonction avec une clause OVER. Ne spécifiez simplement aucun PARTITION.

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

row_number () peut être utilisé pour trouver par exemple, visite récente d'un utilisateur sur votre site.

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