2015-08-20 35 views
7

Devo cambiare il nome della colonna di partizione (non le specifiche della partizione), ho cercato i comandi in hive wiki e alcune pagine google. Riesco a trovare le opzioni per modificare le specifiche di partizione,Come modificare il nome della colonna di partizione Hive

vale a dire, ad esempio

A/table/country = 'US' posso cambiare degli Stati Uniti di Stati Uniti d'America, ma voglio cambiare Paese a continente.

Mi sembra che l'unica opzione disponibile per modificare il nome della colonna di partizione sia cadere e ricreare la tabella. C'è qualche altra opzione disponibile per favore aiutami.

Grazie in anticipo.

+0

Ciao, sei riuscito a trovare una soluzione a questo? – Roshini

risposta

-1

Aggiunta soluzione qui per dopo:

  • Caso d'uso: colonna Variazione partizione da STRING a INT

    set hive.mapred.mode=norestrict; 
    alter table {table_name} partition column ({column_name} {column_type}); 
    
    e.g. ALTER TABLE employee PARTITION COLUMN dept INT; 
    
-1

Come hai detto, rinominare il valore per la partizione è molto semplice:

hive> ALTER TABLE test.usage PARTITION (country ='US') RENAME TO PARTITION (date='USA'); 

I sappi che questo non è quello che stai cercando. Sfortunatamente, dato che i tuoi dati sono già partizionati dal paese, l'unica opzione che hai è quella di eliminare la tabella, rimuovere i dati (supponendo che la tua tabella sia esterna) da HDFS e reinserire i dati usando continente come partizione.

Quello che vorrei fare nel tuo caso è quello di avere più livelli di partizione, in modo che la struttura delle cartelle sarà simile a quanto segue:

/path/to/the/data/continent='america'/country='usa' 
/path/to/the/data/continent='america'/country='mexico' 
/path/to/the/data/continent='europe'/country='spain' 
/path/to/the/data/continent='europe'/country='italy' 
... 

In questo modo è possibile interrogare i dati per i diversi livelli di granularità (in questo caso continente e paese).