开发者社区 问答 正文

combiner为何不适用于求平均数?

combiner为何不适用于求平均数?

展开
收起
芯在这 2021-12-11 10:40:53 734 分享 版权
1 条回答
写回答
取消 提交回答
  • 在求取平均数时,因为添加的Combiner组件是与reduce组件具有相同的逻辑,会提前求一次平均值后传给reduce类,导致求取的平均值错误。例如,求0、20、10、25和15的平均数,直接使用Reduce求平均数Average(0,20,10,25,15),得到的结果是14, 如果先使用Combiner分别对不同Mapper结果求平均数,Average(0,20,10)=10,Average(25,15)=20,再使用Reducer求平均数Average(10,20),得到的结果为15,很明显求平均数并不适合使用Combiner。

    2021-12-11 10:41:08
    赞同 展开评论
问答地址: