2017-04-20 2 views
0

J'ai une table externe dans la ruche partitionnée par année, mois, jour. J'ai donc laissé tomber une partition mais je la vois toujours dans les partitions d'exposition.Les partitions sont toujours affichées dans la ruche même si elles sont supprimées pour une table externe

>use test_raw_tables; 
>show partitions test1_raw; 
[year=2016/month=01/day=01] 
[year=2017/month=03/day=24] 

> alter table test1_raw drop partition (year=2016, month=01, day=01); 
> refresh test1_raw; 
> show partitions test1_raw; 
[year=2016/month=01/day=01] 
[year=2017/month=03/day=24]  ---Still see the dropped partition here---- 

> msck repair table test1_raw; 
> show partitions test1_raw; 
[year=2016/month=01/day=01] 
[year=2017/month=03/day=24] ---Still see the dropped partition here---- 

Fonctionnement de impala avec ruche en tant que moteur.

décrivent ('amount_hold', 'int', '') test1_raw col_name, data_type, commentaire ('id', 'int', '') ('transaction_id', 'string', '') ('recipient_id', 'string', '') ('year', 'string', '') ('month', 'string', '') ('jour', 'chaîne', '') (' ', Aucun, Aucun) (' # Informations de partition ', Aucun, Aucun) (' # nom_colonne ',' type_données ',' commentaire ') (' ', Aucun, Aucun) (' année ',' chaîne ',' ') ('mois', 'string', '') ('jour', 'string', '') 'emplacement HDFS: // localhost/sys/datalake/test/test1_raw'

Qu'est-ce le problème ici? Les données de hdfs sont supprimées pour cette partition après l'avoir supprimée. Je n'arrive pas à comprendre le problème.

+0

** (1) ** s'il vous plaît ajouter la définition de la table ** (2) ** d'où exécutez-vous votre code? impala-coquille? ruche? ligne droite? –

+0

@DuduMarkovitz Table est une table externe. Exécution de la requête à partir du shell de la ruche –

+0

'refresh' est comme une commande Impala, pas une ruche. J'ai besoin de savoir ce que vous exécutez d'où, ainsi que la définition de la table, y compris la définition des partitions pertinentes. S'il vous plaît montrez-moi aussi comment leurs chemins ressemblent dans le système de fichiers. –

Répondre

0

Dans votre définition de tableau Colonne Année, Mois et Jour sont au format Chaîne. Veuillez essayer avec '2016', '01' et '01'. J'ai utilisé le code ci-dessous et cela fonctionne.

alter table test1_raw drop partition (year='2016', month='01', day='01'); 
+0

s'il vous plaît faire la bonne réponse si cela fonctionne pour vous –