Test 1:
在多个分区的情况下,如果使用sort,会将所有分区的数据放在一起进行排序,排序后再重新分区,而不是在各自的分区内进行排序,在该算子实现过程中是有shuffle操作的。
package test.wyh.wordcount
import org.apache.spark.{SparkConf, SparkContext}
object TestSort {
def main(args: Array[String]): Unit = {
//建立Spark连接
val sparkConf = new SparkConf().setMaster("local").setAppName("TestWordCountApp")
val sc = new SparkContext(sparkConf)
val rdd = sc.makeRDD(List(3,1,6,5,2,4), 2)
val sortRDD = rdd.sortBy(element=>element)
sortRDD.saveAsTextFile("output")
//关闭连接
sc.stop()
}
}
运行结果:
可以看到结果中是将原RDD中的所有数据放一起进行排序