Hive 配置单元限制更改按结果分组
如果我从中获取一个结果,并对该组合进行特定查询,结果会发生变化Hive 配置单元限制更改按结果分组,hive,aggregate,hiveql,Hive,Aggregate,Hiveql,如果我从中获取一个结果,并对该组合进行特定查询,结果会发生变化 SELECT `col1` , `col2` , count(*) FROM `tab1` GROUP BY `col1` , `col2` limit 10; +-------+-------+--------+ | col1 | col2 | _c2 | +-------+-------+--------+ | A | A | 1 | | A | B
SELECT `col1`
, `col2`
, count(*)
FROM `tab1`
GROUP BY `col1`
, `col2`
limit 10;
+-------+-------+--------+
| col1 | col2 | _c2 |
+-------+-------+--------+
| A | A | 1 |
| A | B | 34241 |
| A | C | 12345 |
| A | D | 145 |
| A | E | 26 |
| A | F | 224547 |
| B | A | 1429 |
| B | B | 25 |
| B | C | 94 |
| B | D | 1 |
+-------+-------+--------+
如果我运行设置hive.map.aggr=true代码>然后我得到一个不同的计数,介于两者之间
你知道为什么或者如何修复吗
如果使用LIMIT 20
运行相同的查询,那么它将给出正确的计数。或者,我应该说,与WHERE
查询相同的计数,我没有亲自计算它们来检查它是否正确 这可能更适合dba.stackexchange.com,因此如果我在这里运气不好,我可能会删除并重新发布。目前我的解决方法是添加HAVING count(*)>0
这可能是统计数据的问题:
SELECT `col1`
, `col2`
, count(*)
FROM `tab1`
WHERE `col1`='A'
AND `col2`='B'
GROUP BY `col1`
, `col2`;
+-------+-------+--------+
| col1 | col2 | _c2 |
+-------+-------+--------+
| A | B | 38944 |
+-------+-------+--------+