我正试图修复一个问题,已创建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");