In Hive erhalten wir bei der Abfrage (wie: select * from employee
) keine Spaltennamen in der Ausgabe (wie Name, Alter, Gehalt, die wir in RDBMS SQL erhalten würden), sondern nur die Werte.
Gibt es eine Möglichkeit, die Spaltennamen zusammen mit der Ausgabe anzuzeigen, wenn Sie eine Abfrage ausführen?
Wenn Sie die Spaltennamen der Tabelle in HiveQl anzeigen möchten, muss die folgende Hive-Eigenschaft conf auf true festgelegt werden.
Hive> set Hive.cli.print.header=true;
Wenn Sie die Spaltennamen lieber immer sehen möchten, aktualisieren Sie die Datei $ HOME/.hiverc mit der obigen Einstellung in der ersten Zeile.
--Hive sucht automatisch nach einer Datei mit dem Namen .hiverc in Ihrem HOME-Verzeichnis und führt die darin enthaltenen Befehle aus, falls vorhanden
Um den Header zusammen mit der Ausgabe zu drucken, muss die folgende Hive-Eigenschaft conf vor der Abfrage auf true gesetzt werden.
Hive> set Hive.cli.print.header=true;
Hive> select * from table_name;
Wir können auch Abfrage wie diese verwenden, wenn wir das Ergebnis in einer Datei erhalten wollen.
Hive -e 'set Hive.cli.print.header=true;select * from table_name;' > result.xls
Wo Tabellenname Ihr Tabellenname
Alle obigen Antworten beantworten bereits die Frage. Falls jedoch jemand wünscht, dass diese Eigenschaft dauerhaft eingeschaltet ist, gibt es diese Eigenschaft: Hive.cli.print.header
in Hive-default.xml
oder Hive-site.xml
.
Der Standardwert ist false. Machen Sie seinen Wert als wahr und speichern Sie . Fertig.
Die meisten Lösungen sind genau.
das Setzen der Eigenschaft Hive.cli.print.header = true
funktioniert.
Wenn Sie jedoch eine Cloudera, HDP oder andere Distributionen verwenden, werden diese zurückgesetzt. Aktualisieren Sie diese Werte daher in den Hive-Konfigurationen und starten Sie die Dienste neu.
Dies wird eine dauerhafte Lösung sein. hoffe das hilft.
Legen Sie diese Eigenschaft fest, bevor Sie Ihre Abfrage ausführen:
Hive> set Hive.cli.print.header=true;
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
Verwenden Sie 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