Map阶段的combiner阶段为什么不适合求平均值

Map阶段的combiner阶段为什么不适合求平均值

如题:Map阶段的combiner阶段为什么不适合求平均值

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
提问者 徐老师 2022-08-30 11:12:02
PS:本问题来自于课程内部QQ群讨论问题。

combiner主要的功能就是在map端提前执行reduce端的计算逻辑。

在求取平均值时,因为添加的Combiner组件是与reduce组件具有相同的逻辑,会提前求一次平均值后传给reduce类,导致求取的平均值错误。
例如,求0、20、10、25和15的平均值:
1:直接使用Reduce求平均值Average(0,20,10,25,15),得到的结果是14
2:如果先使用Combiner分别对不同Mapper结果求平均数(假设有2个map任务),Average(0,20,10)=10,Average(25,15)=20,再使用Reducer求平均值Average(10,20),得到的结果为15


所以:求平均值并不适合使用Combiner。

  • 提问者 徐老师 #1
    PS:本问题来自于课程内部QQ群讨论问题。


    2022-08-30 11:14:59
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师