Reduce端的Iterable集合的理解:

Iterable:
1.集合里边的每个数值在内存中是用完全二叉树存储的形式存储的(小顶堆)
2.小顶堆的顶端(根节点)存储着按排序后的最大或最小值(小顶堆的特性)
(到底是最大还是最小根据你的排序规则确定)
3.每次循环一次,小顶堆的堆顶数值都会改变,但是不变的是顶堆的数一定是最大或最小值(小顶堆的特性)
4.当第一次调用这个reduce(Text,Iterable,Context){。。。}方法时,传过来的Text(key引用)指向了(小顶堆那组的key值)
5.当循环发生时引用(key)不变但是key存储的key发生变化是因为小顶堆的特性决定的,它会调整这个结构顶堆的数一定是最大或最小值

job.setSortComparatorClass设置的key比较函数类对所有数据对排序。然后开始构造一个key对应的value迭代器。这时就要用到分组,使用jobjob.setGroupingComparatorClass设置的分组函数类。


这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值