setPartitionerClass、setOutputKeyComparatorClass 与 setOutputValueGroupingComparator
来源:互联网 发布:武神赵子龙网络直播 编辑:程序博客网 时间:2024/06/07 18:14
Partitioner这个类是用来决定map输出时,什么样的key输出到同一个reduce节点(调用setPartitionerClass方法),但不保证到同一个reduce节点的key会在同一个group(即不一定在reduce的同一个iter迭代里)。注:map端当输出buffer到达内存的一定比例时,将内存中的数据写到磁盘,此时会按key进行排序,然后才写入磁盘。
由于Partitioner不保证同一个reduce节点的key会到一个group中,所以还需要Comparator来指定group的划分方法(调用setOutputValueGroupingComparator方法),一个group即一个iter迭代。
setOutputKeyComparatorClass方法很容易和setOutputValueGroupingComparator混淆,
setOutputValueGroupingComparator是用来决定group划分,一个group一个iter因此,一个group中的所有元素的key都是compare==0的。
setOutputKeyComparatorClass 设置的是key的比较器,默认是有一个的。因为需要不同的key值之间共享下values所用用这个比较器,比如,进来了 两个key 值是34 和45 如果通过group比较一样的话,那么先输入的key的34 的values和后进入的45的values合并在一起共同作为key是34的value。那KEY 45的value合并到34中了。在输出结果中,key 45 就不会被送到reduce了 而他的value被送到key 34中了。
而setOutputKeyComparatorClass是用来决定key的排序。
默认情况下,reduce节点上的数据是按key的升序字母序来排的,如果你要改变这个顺序(比如数字序)可以用setOutputKeyComparatorClass来指定自定义的类。
- setPartitionerClass、setOutputKeyComparatorClass 与 setOutputValueGroupingComparator
- setPartitionerClass、setOutputKeyComparatorClass 与 setOutputValueGroupingComparator
- setPartitionerClass、setOutputKeyComparatorClass 与 setOutputValueGroupingComparator
- setPartitionerClass, setOutputKeyComparatorClass and setOutputValueGroupingComparator
- setOutputValueGroupingComparator与setOutputKeyComparatorClass
- 与
- 与
- “” 与 “”
- ##与#
- >> 与 > >
- :与::
- &与&&
- && 与 &
- [[与((
- >>与>>>
- *与++
- *与++
- ++与++
- 远古时代”ajax“实现页面无刷新效果
- (四)Hibernate之三大类查询总结
- 设置或清除指定的位
- 如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
- RMAN Compressed Backupset
- setPartitionerClass、setOutputKeyComparatorClass 与 setOutputValueGroupingComparator
- (五)Hibernate之集合属性映射
- 数据库设计三大范式
- crf_learn 伪代码
- (六)Hibernate之单向一对一外键关联映射
- mysql简单介绍及相应软件包介绍
- 计算一个二进制数中有多少位是 1
- 用JavaScriptSerializer在.net中将Json序列化与反序列化
- hdu_2039_三角形_解题报告