在Hive中,当我们进行查询(例如:select * from employee
)时,我们在输出中没有得到任何列名(比如我们在 RDBMS SQL中获得的名称,年龄,薪水)),我们只得到值。
执行任何查询时,有没有办法让列名与输出一起显示?
答案 0 :(得分:129)
如果我们想在HiveQl中查看表的列名,则应将以下hive conf属性设置为true。
hive> set hive.cli.print.header=true;
如果您希望始终查看列名称,请使用第一行中的上述设置更新$ HOME / .hiverc文件。
- Hive会自动在您的HOME目录中查找名为.hiverc的文件并运行它包含的命令(如果有的话)
答案 1 :(得分:11)
要将标题与输出一起打印,在执行查询之前,应将以下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 您的表名
答案 2 :(得分:5)
以上所有答案已经回答了这个问题。但是,如果有人希望此属性永久为ON,则会在hive.cli.print.header
或hive-default.xml
中显示此属性:hive-site.xml
。
其默认值为false。使其价值成为真实并保存。 完成。
答案 3 :(得分:2)
大多数解决方案都是准确的。
设置属性hive.cli.print.header = true
有效。
但是如果你使用cloudera,HDP或任何其他发行版,这些将被重置。因此,在Hive配置中更新这些值并重新启动服务。
这将是一个永久修复。希望这有帮助。
答案 4 :(得分:1)
在执行查询之前设置此属性:
hive> set hive.cli.print.header=true;
答案 5 :(得分:0)
使用A obj3= new B()
set hive.cli.print.header=true;
答案 6 :(得分: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