在Hive中执行任何查询时,有什么方法可以获取列名以及输出?


70

在Hive中,当我们执行查询时(例如:),我们 select * from employee不会在输出中获得任何列名称(例如在RDBMS SQL中获得的名称,年龄,薪水),我们只会获得值。

当执行任何查询时,有什么方法可以使列名与输出一起显示?

Answers:


143

如果我们想在HiveQl中查看表的列名,则以下hive conf属性应设置为true。

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

如果您希望始终查看列名,请在第一行中使用上述设置更新$ HOME / .hiverc文件。

--Hive自动在您的HOME目录中查找名为.hiverc的文件,并运行其中包含的命令(如果有)


如果文件.hiverc不存在,则可以如上所述创建一个文件并添加行。
Jignesh Rawal

回声“ SET hive.cli.print.header = true;” >>〜..hiverc
Rodrigo Hjort

1
如果已配置安装,还可以在hive-site.xml中将属性“ hive.cli.print.header”设置为true。
miniscem

13

若要将标头与输出一起输出,应在执行查询之前将以下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您的表名


4

以上所有答案均已回答问题。但在情况下,如果有人想这个属性为ON永久,再有就是这个属性:hive.cli.print.headerhive-default.xmlhive-site.xml

其默认值为false。将其值设为true并保存。做完了


2

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

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

2

大多数解决方案都是准确的。

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

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

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


0

采用 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
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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.