hadoop—在hive中执行任何查询时,有没有任何方法可以获得列名和输出?

alen0pnh  于 2021-06-03  发布在  Hadoop
关注(0)|答案(7)|浏览(290)

在hive中,执行查询时(例如: select * from employee ),我们在输出中不获取任何列名(如在rdbms sql中获取的name、age、salary),我们只获取值。
在执行任何查询时,是否有任何方法可以使列名与输出一起显示?

xriantvc

xriantvc1#

以上所有的答案都已经回答了这个问题。但如果有人想永久拥有这个财产,那么就有这个财产: hive.cli.print.headerhive-default.xml 或者 hive-site.xml .
其默认值为false。使它的价值为真并保存。完成。

ippsafx7

ippsafx72#

大多数解都是精确的。
设置属性 hive.cli.print.header = true 作品。
但是,如果您使用的是cloudera、hdp或任何其他发行版,这些发行版将被重置。因此,更新配置单元配置中的这些值并重新启动服务。
这将是永久性的修复。希望这有帮助。

vcirk6k6

vcirk6k63#

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

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

4xrmg8kj4#

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
jvlzgdj9

jvlzgdj95#

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

t1rydlwq

t1rydlwq6#

如果我们想在hiveql中查看表的列名,那么下面的hiveconf属性应该设置为true。

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

如果希望始终看到列名,请在第一行中使用上述设置更新$home/.hiverc文件。。
--配置单元会自动在主目录中查找名为.hiverc的文件,并运行其中包含的命令(如果有的话)

jqjz2hbq

jqjz2hbq7#

要将标题与输出一起打印,在执行查询之前,应将以下配置单元配置文件属性设置为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\u name您的表名

相关问题