web-dev-qa-db-fra.com

Est-il possible d'obtenir le nom de la colonne avec la sortie tout en exécutant une requête dans Hive?

Dans Hive, lorsque nous faisons une requête (telle que: select * from employee), nous n'obtenons aucun nom de colonne dans la sortie (tel que nom, âge, salaire que nous aurions dans SGBDR RDBMS ), nous obtenons uniquement les valeurs.

Existe-t-il un moyen d'obtenir l'affichage des noms de colonne avec la sortie lorsque vous exécutez une requête?

61
Nithin K Anil

Si nous voulons voir les noms de colonnes de la table dans HiveQl, la propriété Hive conf suivante doit être définie sur true.

Hive> set Hive.cli.print.header=true;

Si vous préférez toujours voir les noms de colonne, mettez à jour le fichier $ HOME/.hiverc avec le paramètre ci-dessus dans la première ligne.

--Hive recherche automatiquement un fichier nommé .hiverc dans votre répertoire HOME et exécute les commandes qu'il contient, le cas échéant

126
user2637464

Pour imprimer l'en-tête avec la sortie, la propriété Hive conf suivante doit être définie sur true avant d'exécuter la requête.

Hive> set Hive.cli.print.header=true;
Hive> select * from table_name;

Nous pouvons également utiliser une requête comme celle-ci si nous voulons obtenir un résultat dans un fichier.

Hive -e 'set Hive.cli.print.header=true;select * from table_name;' > result.xls

nom_table votre nom de table

11
Sandeep Singh

Toutes les réponses ci-dessus répondent déjà à la question. Mais si quelqu'un veut que cette propriété soit activée en permanence, il existe cette propriété: Hive.cli.print.header dans Hive-default.xml ou Hive-site.xml.

Sa valeur par défaut est false. Définissez sa valeur sur true et enregistrez . Terminé.

5
Tango

La plupart des solutions sont précises. 

définir la propriété Hive.cli.print.header = true fonctionne.

Mais si vous utilisez une distribution Cloudera, HDP ou toute autre distribution, celles-ci seront réinitialisées. Par conséquent, mettez à jour ces valeurs dans les configurations Hive et redémarrez les services.

Ce sera une solution permanente. J'espère que cela t'aides.

2
viru

Définissez cette propriété avant d'exécuter votre requête:

Hive> set Hive.cli.print.header=true;
1
Tariq
1)Permenant solution
change this property in Hive-site.xml file under $Hive_HOME/conf folder
    <property>
    <name>Hive.cli.print.header</name>
    <value>true</value>
    <description>Whether to print the names of the columns in query output.
    </description>
    </property>
2)Temporary solution:
go to Hive Prompt execute this comman
   Hive>set Hive.cli.print.header=True
0
y durga prasad

Utilisez set Hive.cli.print.header=true;

Hive> set Hive.cli.print.header=true;      
Hive> select * from tblemployee;
OK
id      name    gender  salary  departmentid
1       tomr    male    40000   1
2       cats    female  30000   2
3       john    male    50000   1
4       james   male    35000   3
5       sara    female  29000   2
6       bens    male    35000   1
7       saman   female  30000   NULL
8       russel  male    40000   2
9       valar   female  30000   1
10      todd    male    95000   NULL
Time taken: 9.892 seconds
0
Hareesh