Hive Count 的结果不正确
Posted
技术标签:
【中文标题】Hive Count 的结果不正确【英文标题】:Incorrect results for Hive Count 【发布时间】:2019-08-20 19:44:36 【问题描述】:与使用 where 子句时相比,我在对表进行完整计数时得到不正确的计数。结果如下:
SELECT count(1) FROM Table_MAS MAS;
OK
11317322
hive> SELECT count(1) FROM Table_MAS where Col_A IS NOT NULL and Col_B is NOT NULL;
OK
552589106
我已经对表格进行了分析和修复。好像没有什么问题。
想看看是否有其他人遇到过类似的情况,如果有,您是如何纠正的?
我已经对表格进行了分析和修复。
显然,我希望 where 子句的计数始终等于或低于完整计数。
【问题讨论】:
【参考方案1】:你应该使用:
select count(*) FROM Table_MAS MAS;
COUNT(*) 将计算行数,而 COUNT(1) 将计算表达式中的非空值,而 COUNT(column) 将计算列中的所有非空值。
【讨论】:
以上是关于Hive Count 的结果不正确的主要内容,如果未能解决你的问题,请参考以下文章
Select * 的行计数结果 MISMATCH 和大文件的 Hive 外部表的 Select count(1)
hive执行select count(*) 返回0,但是select * 有数据
mongodb count 导致不正确的数量(mongodb count 一个坑)