问题背景:
set hive.execute.engine=spark;
--set hive.execute.engine=MR;
select count(distinct rowkey) cnt
from db::table
where f_date = 20200326;
这样一条sql 在执行引擎spark 远快于MR
Spark 引擎:
image.pngMR 引擎 :
image.png结论:
- spark引擎是2次shuffle,先group by 一次,再1次shuffle求和
- MR引擎就是一次shuffle,直接在一个reducer端去重
网友评论