为了账号安全,请及时绑定邮箱和手机立即绑定

HIVE选择计数(*)非空值比选择计数(*)返回更高的值

HIVE选择计数(*)非空值比选择计数(*)返回更高的值

收到一只叮咚 2019-12-06 09:39:57
我目前正在使用Hive进行一些数据探索,无法解释以下行为。说我有一个带有字段master_id的表(名为mytable)。当我计算行数时,我得到select count(*) as c from mytable c1129563如果我要计算具有非null master_id的行数,则会得到一个更高的数字select count(*) as c from mytable where master_id is not nullc1134041此外,master_id似乎永远不会为空。select count(*) as c from mytable where master_id is nullc0我无法解释添加where语句最终如何增加行数。有人有任何暗示来解释这种行为吗?谢谢
查看完整描述

1 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

由于设置了此参数,很可能您的查询没有在哪里使用统计信息:


set hive.compute.query.using.stats=true;

尝试将其设置为false并再次执行。


或者,您可以在表上计算统计信息。请参阅分析表语法


也可以在INSERT OVERWRITE期间自动收集统计信息:


set hive.stats.autogather=true;


查看完整回答
反对 回复 2019-12-06
  • 1 回答
  • 0 关注
  • 428 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信