2017-03-21 2 views

Répondre

0

Hive prend en charge les propriétés ACID de Hive-0.14. En utilisant les transactions Hive, vous pouvez mettre à jour ou supprimer vos enregistrements existants.

Il existe peu de règles à suivre pour effectuer des opérations de mise à jour et de suppression. Vous pouvez vous référer à to this blog sur les transactions Hive pour plus de détails et d'implémentation.

+0

essentiellement, je dois fusionner deux tables. Si les deux tables ont des ID correspondants, les enregistrements de la première table doivent être écrasés par les enregistrements de la deuxième table. Les enregistrements de la deuxième table seront simplement insérés dans la première table. – Parameshwar

0

Ma réputation est trop faible pour répondre directement à votre commentaire, mais voici une façon de l'accomplir:

INSERT OVERWRITE TABLE table_a 
SELECT * FROM table_a a WHERE a.id NOT IN (SELECT id FROM table_b) 
UNION ALL 
SELECT * FROM table_b; 
+0

Est-ce que le 'NOT IN' se comportera de la même manière dans ce cas que' NOT EXISTS'? La [documentation] (https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML#LanguageManualDML-InsertingdataintoHiveTablesfromqueries) dit spécifiquement d'utiliser 'NOT EXISTS'. – Andrew