2012-11-24 15 views

risposta

1

Non è necessario rimuovere la directory in hdf, tranne che è necessario più spazio hdf.

Se si desidera sostituire nuovi dati, è sufficiente sostituire il file in hdf.

Se si desidera utilizzare il nome della tabella per altri usi, rilasciare la tabella e rimuovere la directory in hdf.

In effetti, penso che questa sia una funzionalità molto utile che è possibile modificare lo schema della tabella (ad esempio, si desidera modificare il nome del campo o concatenare due campi in un campo) senza perdere alcun dato.

+1

Il mio problema è che ho bisogno di liberarmi dei dati ma ricreare la tabella con lo stesso nome e schema? – amrk7

+4

rimuovere il file hdfs, drop table; importa nuovo file in hdf e crea una nuova tabella. – pensz

2

Anche se sono d'accordo con pensz, una leggera modifica, è necessario non lasciare cadere il tavolo. Basta sostituire il file hdfs esterno con qualsiasi nuovo file che si desidera (la struttura del file sostituito dovrebbe essere la stessa) e quando si esegue una selezione * della tabella precedente, si noterà che avrà i nuovi dati e non i vecchi uno.

Le tabelle esterne in genere indicano solo lo schema dei dati e la posizione del file. Puoi aggiungere molti file nella stessa posizione e la tua tabella conterrà automaticamente tutti i dati relativi a questi file. Allo stesso modo, puoi sostituire qualsiasi dato e automaticamente la tua tabella rifletterà questo.

+1

Tuttavia, se la tabella è partizionata, saranno necessari piccoli cambiamenti. Sto pensando che il tuo tavolo non lo sia. –

+0

Grazie! tats molte informazioni – amrk7

1

prima ottenere il percorso della tabella utilizzando seguente comando:

alveare> descrivere database_name.table_name formattato; comando seguente per troncare tutti i dati dalla tabella determinata /user/hive/warehouse/database_name.db/table_name

Dopo questo uso::

, copia intera posizione che appaiono nella descrizione, per esempio

***hive> dfs -rmr /user/hive/warehouse/database_name.db/table_name;*** 

O

***hive> dfs -rm -r /user/hive/warehouse/database_name.db/table_name;*** 

Poi si può pulire completamente noi il comando DROP TABLE.

0

se si tratta di una tabella esterna, lasciando cadere il tavolo significa che sono solo eliminando lo schema

quindi bisogna eliminare manualmente il file da HDFS

o creare una nuova tabella, e dare un diverso posizione del file in proprietà tbl

Problemi correlati