Hive -如何从结果集删除列头

  • 本文关键字:删除列 结果 Hive sql hive
  • 更新时间 :
  • 英文 :


我正试图修复一个问题,已创建hive查询执行后。

一个名为'stock_data'的新表,其中包含股票价格,股票代码和所有其他详细信息。

我有一个tsv文件(tab分隔文件),并使用'load data local inpath'命令加载数据库表。

tsv文件列头像'stock_name','stock_symbol' ....

现在,当我想显示股票代码和计数使用下面的查询:-

select stock_symbol,count(*) from stocks group by stock_symbol;

输出正在加载列标头

XOM 500
XRX 500
XTO 496
YPF 500
YUM 500
YZC 478
ZAP 494
ZF  494
stock_symbol    1
Time taken: 20.576 seconds, Fetched: 1735 row(s)

我的问题是:-

如何从我的结果集中隐藏或删除'stock_symbol 1'(最后一行)?

我试着在运行之前使用下面的命令:-

set hive.cli.print.header=false;

not work for me…

有谁能帮我一下吗?

谢谢. .

从shell终端尝试下面的命令

hive -s -e 'select stock_symbol,count(*) from stocks group by stock_symbol;' | tail -1

注意:使用tail或head命令结束最后一行…

问题似乎是您的数据以标题作为数据行导入。我建议您直接删除值:

delete from stocks
    where stock_symbol = 'stock_symbol';

否则,您可以修改您的查询并使用WHERE来排除它:

select stock_symbol, count(*)
from stocks
where stock_symbol <> 'stock_symbol'
group by stock_symbol;

相信你的输入转储都有头,这是它在计数中反映的。

请查看链接在hive表中加载时跳过第一行csv

答案已经被分享了:)

前面的样例含义也

CREATE TABLE temp 
  ( 
     name STRING, 
     id   INT 
  ) row format delimited fields terminated BY 't' lines terminated BY 'n' 
tblproperties("skip.header.line.count"="1"); 

最新更新