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 一个坑)

hive count 统计null吗

mongodb count 导致不正确的数量(mongodb count 一个坑)

hive中count和sum的区别