2014-10-03 13 views
26

So che è possibile ottenere i nomi delle colonne da una tabella tramite il seguente trucco in alveare:Basta avere i nomi delle colonne dalla tabella alveare

hive> set hive.cli.print.header=true; 
hive> select * from tablename; 

E 'anche possibile solo ottenere i nomi delle colonne della tabella ?

Non mi piace dover modificare un'impostazione per qualcosa di cui ho bisogno solo una volta.

mia soluzione attuale è la seguente:

hive> set hive.cli.print.header=true; 
hive> select * from tablename; 
hive> set hive.cli.print.header=false; 

questo sembra troppo prolisso e contro il DRY-linea di principio.

+1

Intendi dire che è necessario ottenere i nomi delle colonne insieme all'uscita * selezionata? –

+1

perchè non fare una tabella descrivibile ?? – Amar

+0

doh! non l'ho trovato nei documenti. descrivere la tabella lo fa. – cantdutchthis

risposta

34

Se si vuole semplicemente vedere i nomi delle colonne questa linea dovrebbe fornire senza modificare alcuna impostazione:

describe database.tablename; 

Tuttavia, se questo non funziona per la versione di alveare questo codice fornirà esso, ma il vostro database di default sarà ora il database che si sta utilizzando:

use database; 
describe tablename; 
+0

Ho una domanda: descriverò la scansione di tutte le partizioni, causando HiveMetastore OOM? Ho incontrato OOM durante l'esecuzione di descrivere tablename nel mio caso. –

32

si potrebbe anche fare show columns in $table o vedere Hive, how do I retrieve all the database's tables columns per l'accesso ai metadati alveare

+3

Questa dovrebbe essere la risposta accettata alla domanda "è possibile ** solo ** ottenere i nomi delle colonne", dato che 'describe' fornisce informazioni aggiuntive. –

0

utilizzare desc tablename da CLI Hive o Beeline per ottenere tutti i nomi di colonna. Se vuoi i nomi delle colonne in un file, esegui il comando seguente dalla shell.

$ hive -e 'desc dbname.tablename;' > ~/columnnames.txt 

dove dbname è il nome del database Hive in cui la vostra tabella risiede È possibile trovare il file columnnames.txt nella directory principale.

$cd ~ 
$ls 
Problemi correlati