webentwicklung-frage-antwort-db.com.de

Gibt es eine Möglichkeit, den Spaltennamen zusammen mit der Ausgabe abzurufen, während eine Abfrage in Hive ausgeführt wird?

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?

61
Nithin K Anil

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

126
user2637464

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

11
Sandeep Singh

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.

5
Tango

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.

2
viru

Legen Sie diese Eigenschaft fest, bevor Sie Ihre Abfrage ausführen:

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

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
0
Hareesh