Simplemente obtenga los nombres de las columnas de la tabla hive


Sé que puedes obtener los nombres de las columnas de una tabla a través del siguiente truco en hive:

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

¿También es posible simplemente obtener los nombres de las columnas de la tabla?

No me gusta tener que cambiar una configuración para algo que solo necesito una vez.

Mi solución actual es la siguiente:

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

Esto parece demasiado detallado y contrario al principio SECO.

Author: chanchal1987, 2014-10-03

3 answers

Si simplemente desea ver los nombres de las columnas, esta línea debe proporcionarlo sin cambiar ninguna configuración:

describe database.tablename;

Sin embargo, si eso no funciona para su versión de hive, este código lo proporcionará, pero su base de datos predeterminada ahora será la base de datos que está utilizando:

use database;
describe tablename;
 46
Author: JJFord3,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-09 00:58:16

También podría hacer show columns in $table o ver Colmena, cómo puedo recuperar todas las columnas de tablas de la base de datos para acceder a los metadatos de la colmena

 39
Author: Angelo Di Donato,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:02:51

Use desc tablename desde Hive CLI o beeline para obtener todos los nombres de columna. Si desea los nombres de las columnas en un archivo, ejecute el siguiente comando desde el shell.

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

Donde dbname es el nombre de la base de datos de la colmena donde reside su tabla Puede encontrar los nombres de las columnas del archivo.txt en su directorio raíz.

$cd ~
$ls
 -1
Author: Alex Raj Kaliamoorthy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-06 10:44:56