在Hive中执行任何查询时,有没有办法获取列名和输出?

时间:2013-08-01 05:27:13

标签: hadoop hive rdbms

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

执行任何查询时,有没有办法让列名与输出一起显示?

7 个答案:

答案 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.headerhive-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