86 votes

Comment mettre à jour/supprimer une partition Hive ?

Après avoir ajouté une partition à un table externe en Ruche Comment puis-je le mettre à jour ou le supprimer ?

182voto

darcyq Points 902

Vous pouvez mettre à jour une partition Hive en, par exemple :

ALTER TABLE logs PARTITION(year = 2012, month = 12, day = 18) 
SET LOCATION 'hdfs://user/darcy/logs/2012/12/18';

Cette commande ne déplace pas les anciennes données et ne les supprime pas non plus. Elle place simplement la partition au nouvel emplacement.

Pour supprimer une partition, vous pouvez procéder comme suit

ALTER TABLE logs DROP IF EXISTS PARTITION(year = 2012, month = 12, day = 18);

J'espère que cela vous aidera !

19voto

F.Lazarescu Points 860

En outre, vous pouvez supprimer plusieurs partitions à partir d'une seule déclaration ( Suppression de plusieurs partitions dans Impala/Hive ).

Extrait du lien ci-dessus :

hive> alter table t drop if exists partition (p=1),partition (p=2),partition(p=3);
Dropped the partition p=1
Dropped the partition p=2
Dropped the partition p=3
OK

EDIT 1 :

Vous pouvez également supprimer des groupes en utilisant un signe de condition (>,<,<>), par exemple :

Alter table t 
drop partition (PART_COL>1);

6voto

Dev Kumar Points 71
Alter table table_name drop partition (partition_name);

2voto

Sergey Zyuzin Points 2164

Vous pouvez soit copier les fichiers dans le dossier où se trouve la partition externe, soit utiliser la fonction

INSERT OVERWRITE TABLE tablename1 PARTITION (partcol1=val1, partcol2=val2...)...

déclaration.

2voto

Il se peut également que vous deviez rendre active la base de données contenant la table.

use [dbname]

sinon vous risquez d'obtenir une erreur (même si vous spécifiez la base de données, c'est-à-dire dbname.table).

Erreur d'exécution FAILED, code de retour 1 de org.apache.hadoop.hive.ql.exec.DDLTask. Impossible de modifier la partition. Impossible de modifier les partitions car la table ou la base de données n'existe pas.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X