在很多应用场景都需要对结果数据进行排序,Spark中有时也不例外。在Spark中存在两种对RDD进行排序的函数,分别是 sortBy和sortByKey函数。sortBy是对标准的RDD进行排序,它是从Spark 0.9.0之后才引入的(可以参见SPARK-1063
)。而sortByKey函数是对PairRDD进行排序,也就是有Key和Value的RDD。下面将分别对这两个函数的实现以及使用进行说明。
sortBy函数
数据源:
hello you
hello me
hello you
scala代码:
object SparkWordCount {
def main(args: Array[String]): Unit = {
//spark执行入口
val sc = new SparkContext(new SparkConf().setMaster("local").setAppName("SparkWordCount"))
//读取数据源,创建RDD
val lines: RDD[String] = sc.textFile("E:\\wordcount.txt")
//flatMap:按照空格切分并压平,打散成一个一个再组合成一个对象。map:将单词和1组合,组成一个元组
val data: RDD[(String, Int)] = lines.flatMap(_.sp