Spark-Sort排序详解
⽬录白萝卜的英文
1.sortByKey
⽆可⾮议sortByKey是Spark的最常⽤的排序,简单的案例暂且跳过,下⾯给⼀个⾮简单的案例,进⼊排序之旅
对下⾯简单元祖,要求先按元素1升序,若元素1相同,则再按元素3升序
(1, 6, 3), (2, 3, 3), (1, 1, 2), (1, 3, 5), (2, 1, 2)
提⽰:sortByKey对于key是单个元素排序很简单,如果key是元组如(X1,X2,X3.....),它会先按照X1排序,若X1相同,则在根据X2排序,依次类推...由上⾯的分析,我们可以给出如下的代码:
09.
harbor结果:
01.
2.sortBy
SortBy其实是SortBykey的加强版,⽐如上⾯的功能可以使⽤这个函数实现
01.
北航mba看上去是不是很神奇,其实sortBy内部帮我们做的,就是我上⾯写的代码。下⾯看下SortBy的源码:parallel lines
09.
sortBy先调⽤keyBy函数,⽽keyBy的功能很简单,key为⽤户制定,⽐如上⾯的f => ((f._1, f._3),value为原始值:
04.
最后在调⽤sortByKey函数,和上⾯的神似有⽊有..
toner什么意思
3.Ordering
Ordering在Spark的排序应⽤中随处可见,⽐如上⾯的SortBy它就有⼀个隐式参数implicit ord: Ordering[K],如下摘抄⾃Scala提供对简单的类型排序, quickSort 这⾥使⽤了,为第⼆个括号为Orderi
ng类型的隐式参数
06.
对复杂类型的排序
riddles08.
因为sortByKey实现了Ordering的很多功能,下⾯以Spark中的top函数为例忙day
jonny deep
03.
在下⾯的元组中,以第2个元素基,取出前3⼤的元组
03.
结果:辽宁省高考分数查询>rack是什么意思
01.