在Hive中执行任何查询的时候,有没有办法让列名和输出一起?

在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 

where table_name你的表名

以上所有答案已经回答了这个问题。 但是如果有人希望这个属性永久为ON,那么在hive-default.xmlhive-site.xmlhive.cli.print.header属性。

它的默认值是false。 使其价值真实并保存。 完成。

在执行查询之前设置此属性:

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

大部分解决scheme都是准确的。

设置属性hive.cli.print.header = true作品。

但是,如果您使用的是cloudera,HDP或任何其他发行版,这些将被重置。 因此,更新Hiveconfiguration中的这些值并重新启动服务。

这将是一个永久性的修复。 希望这可以帮助。

使用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 
 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