Hiveでは、クエリを実行すると(select * from employee
など)、出力に列名は表示されません(名前、年齢、給与などRDBMS SQL) 、値のみを取得します。
クエリを実行するときに、出力とともに列名を表示する方法はありますか?
HiveQlでテーブルの列名を表示するには、次のHive confプロパティをtrueに設定する必要があります。
Hive> set Hive.cli.print.header=true;
列名を常に表示する場合は、最初の行で上記の設定を使用して$ HOME/.hivercファイルを更新します。
--Hiveは、HOMEディレクトリで.hivercという名前のファイルを自動的に検索し、含まれているコマンドがあればそれを実行します
ヘッダーを出力とともに出力するには、クエリを実行する前に、次のHive confプロパティをtrueに設定する必要があります。
Hive> set Hive.cli.print.header=true;
Hive> select * from table_name;
ファイルに結果を取得したい場合は、このようなクエリを使用することもできます。
Hive -e 'set Hive.cli.print.header=true;select * from table_name;' > result.xls
ここでtable_nameテーブル名
上記のすべての回答はすでに質問に回答しています。しかし、誰かがこのプロパティを永続的にオンにしたい場合、次のプロパティがあります:Hive.cli.print.header
in Hive-default.xml
またはHive-site.xml
。
デフォルト値はfalseです。値をtrueにして保存します。できた.
ほとんどのソリューションは正確です。
プロパティHive.cli.print.header = true
の設定は機能します。
ただし、cloudera、HDP、またはその他のディストリビューションを使用している場合、これらはリセットされます。したがって、Hive構成でこれらの値を更新し、サービスを再起動します。
これは永続的な修正です。お役に立てれば。
クエリを実行する前にこのプロパティを設定します。
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
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