Hive - 如何在命令行中显示Hive查询结果以及列名

时间:2018-02-21 00:21:13

标签: hadoop hive

我在Hive工作了很长一段时间。请注意,我根本不使用Hue。我一直使用Hive shell,现在我得到了一个奇怪但有用的问题。

每当我们在Hive shell中执行查询时,我们都可以在屏幕上看到相关结果,但我们无法识别与数据对应的列名,除非我们执行" desc格式化table_name"或任何其他类似的命令,并向上/向下滚动屏幕,以使结果与表结构相匹配。我们最有可能这样做。

出于好奇,我想知道在我们执行基本查询时是否有任何方法可以打印列名和至少数据,例如" select * from table_name" ?

1 个答案:

答案 0 :(得分:2)

打开配置单元会话后设置此属性

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

这样它就会显示你的列名。

<强> 实施例

hive> desc sales;
OK
col_name        data_type       comment
year                    string
month                   string
customer                string
stateid                 string
productid               string
qty                     string
billed                  string

hive> select * from sales;
OK
2011    1.2     A       2       1       2       8
2011    5.2     C       3       1       1       8
2011    2       B       1       2       1       2
2011    3       B       1       2       2       2

设置上述属性后

hive> set hive.cli.print.header=true;
hive> select * from sales;
OK
sales.year      sales.month     sales.customer  sales.stateid   sales.productid sales.qty       sales.billed
2011    1.2     A       2       1       2       8
2011    5.2     C       3       1       1       8
2011    2       B       1       2       1       2

如果你想在每个列名之前删除表名,即销售。,那么设置以下属性

hive> set hive.resultset.use.unique.column.names=false;
hive> select * from sales;
OK
year    month   customer        stateid productid       qty     billed
2011    1.2     A       2       1       2       8
2011    5.2     C       3       1       1       8
2011    2       B       1       2       1       2

(或)

作为永久性解决方案,您可以在 hive-site.xml 中找到并将此属性值更改为 true