web-dev-qa-db-fra.com

Comment mettre à jour / déposer une partition Hive?

Après avoir ajouté une partition à un table externe dans Hive, comment puis-je le mettre à jour/le déposer?

56
darcyq

Vous pouvez mettre à jour une partition Hive, 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, ni ne supprime les anciennes. Il définit simplement la partition au nouvel emplacement.

Pour déposer une partition, vous pouvez faire

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

J'espère que ça aide!

136
darcyq

Vous pouvez copier des fichiers dans le dossier contenant la partition externe ou utiliser

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

déclaration.

1
Sergey Zyuzin

en outre, vous pouvez supprimer plusieurs partitions d'une seule instruction ( Supprimer 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:

En outre, vous pouvez supprimer du volume en utilisant un signe de condition (>, <, <>), par exemple:

Alter table t 
drop partition (PART_COL>1);
1
F.Lazarescu