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 |
+-------+-------+--------+
如果我从中获取一个结果,并对该组合执行特定查询,则结果会更改。
SELECT `col1`
, `col2`
, count(*)
FROM `tab1`
WHERE `col1`='A'
AND `col2`='B'
GROUP BY `col1`
, `col2`;
+-------+-------+--------+
| col1 | col2 | _c2 |
+-------+-------+--------+
| A | B | 38944 |
+-------+-------+--------+
如果我跑了 set hive.map.aggr=true;
然后我得到一个不同的计数,介于两者之间。
你知道为什么或者怎么解决吗?
如果我对运行相同的查询 LIMIT 20
然后它给出了正确的计数。或者,我应该说,和 WHERE
询问,我还没有亲自数过,以检查是否正确!
暂无答案!
目前还没有任何答案,快来回答吧!