我正在尝试解决在hive查询执行后创建的一个问题。
一个名为' stock_data'的新表这是持有股票价格,股票代码和所有其他细节。
我有一个tsv文件(制表符分隔文件),并在路径中使用“加载本地数据”。命令加载数据库表。
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;
对我不起作用......
任何人都可以帮助我......
谢谢..
答案 0 :(得分:0)
问题似乎是您的数据是使用标头作为数据行导入的。我可能会建议您删除该值:
delete from stocks
where stock_symbol = 'stock_symbol';
否则,您可以修改查询并使用WHERE
将其排除:
select stock_symbol, count(*)
from stocks
where stock_symbol <> 'stock_symbol'
group by stock_symbol;
答案 1 :(得分:0)
从shell终端
尝试以下命令hive -s -e'选择stock_symbol,按stock_symbol从股票组中计算(*);' |尾巴-1
注意:使用tail或head命令终止最后一行......
答案 2 :(得分:0)
相信你有输入转储,它都有标题,这就是它在计数中的反映。
请检查链接 Skip first line of csv while loading in hive table
已经分享了答案:)
之前的样本示例意义
CREATE TABLE temp
(
name STRING,
id INT
) row format delimited fields terminated BY '\t' lines terminated BY '\n'
tblproperties("skip.header.line.count"="1");