rocky-AGE-24
//统计单词top10
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("tst").setMaster("local[3]")
val sc = new SparkContext(conf)
//wc
val res = sc.textFile("D:\\test\\spark\\urlCount").flatMap(_.split("\\s"))
.map((_,1)).reduceByKey(_+_).map(t=>(t._2,t._1)).sortByKey().take(10)
//不能用top函数,要用

print(res.toBuffer)
println()

// val sr = Source.From
val lines = Source.fromFile("D:\\test\\spark\\urlCount\\itcast.log").getLines();
val res1 = lines.flatMap(_.split("\\s")).toList.
map((_,1L)).groupBy(_._1).map(t=>(t._1,t._2.size)).toList.sortBy(-_._2).take(10)
print(res1.toList.toBuffer)
}

在很多应用场景都需要对结果数据进行排序,Spark中有时也不例外。在Spark中存在两种对RDD进行排序的函数,分别是 sortBy和sortByKey函数。sortBy是对标准的RDD进行排序,它是从Spark 0.9.0之后才引入的(可以参见SPARK-1063)。而sortByKey函数是对PairRDD进行排序,也就是有Key和Value的RDD。下面将分别对这两个函数的实现以及使用进行说明。

当组成keyval对之后只能用sortBykey实现了

 

Spark: sortBy和sortByKey函数详解

分类:

技术点:

相关文章:

  • 2021-09-11
  • 2021-09-11
  • 2021-09-11
  • 2021-09-11
  • 2022-12-23
  • 2018-10-06
  • 2022-02-08
  • 2021-04-18
猜你喜欢
  • 2022-01-04
  • 2021-09-11
  • 2021-09-11
  • 2021-09-11
  • 2021-09-11
  • 2022-12-23
相关资源
相似解决方案