Après avoir ajouté une partition à un table externe en Ruche Comment puis-je le mettre à jour ou le supprimer ?
Réponses
Trop de publicités?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 !
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);
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.