import org.apache.spark.{SparkConf, SparkContext}/*** 先分组, 后排序<br>* sorted:<br>* sortWith:<br>* sortBy:<br>*/
object GroupTopN {val conf = new SparkConf().setMaster("local").setAppName("RDDTest")val sc = new SparkContext(conf)def main(args: Array[String]): Unit = {testSortBy()sc.stop()}def testSorted() = {val rdd1 = sc.parallelize(List(("a", 1), ("a", 2), ("a", 3), ("a", 4), ("b", 5), ("b", 6), ("b", 7), ("b", 8)))//根据key分组并内部降序rdd1.groupByKey().mapValues(f => {//分组内部排序的两种方式f.toList.sorted.reverse//f.toList.sortWith(_>_)}).foreach(println)}def testSortWith() = {val rdd3 = sc.parallelize(List(("a", (1, 5)), ("a", (2, 4)), ("a", (3, 6)), ("a", (4, 1)),("b", (5, 2)), ("b", (6, 3)), ("b", (7, 9)), ("b", (8, 8))))rdd3.groupByKey().map(t => {val its = t._2val sortResult = its.toList.sortWith(_._2 > _._2).take(5)(t._1, sortResult)}).foreach(println)}def testSortBy() = {println("map === sortBy")val word = sc.parallelize(List(("a", (1, 5)), ("a", (2, 4)), ("a", (3, 6)), ("a", (4, 1)),("b", (5, 2)), ("b", (6, 3)), ("b", (7, 9)), ("b", (8, 8))))val group = word.groupByKey().map(t => {// reverse 降序val topItem = t._2.toArray.sortBy(_._2)(Ordering[Int].reverse)for (tp <- topItem) yield (t._1, tp)}).flatMap(t => for (tp <- t) yield tp).foreach(println)}
}

sortWith与sortBy相关推荐

  1. scala的三个排序方法

    sorted 对一个集合进行自然排序,通过传递隐式的Ordering 无需参数 def sorted[B >: A](implicit ord: Ordering[B]): Repr scala ...

  2. Scala高阶函数操作示例详解

    Scala 运算符和集合转换操作示例集锦 一.常用操作符(操作符其实也是函数) ++ ++[B](that: GenTraversableOnce[B]): List[B] 从列表的尾部添加另外一个列 ...

  3. scala sortBy and sortWith

    sortBy: sortBy[B](f: (A) ⇒ B)(implicit ord: math.Ordering[B]): List[A] 按照应用函数f之后产生的元素进行排序 sorted: so ...

  4. scala中 sorted,sortBy,sortWith语法使用

    排序 在scala集合中,可以使用以下几种方式来进行排序 sorted 默认排序 sortBy 指定字段排序 sortWith 自定义排序 默认排序 sorted //示例:对列表进行升序排序 sca ...

  5. scala中sorted,sortby,sortwith的用法(转)

    scala中sorted,sortWith,sortBy用法详解 2017年07月23日 23:07:51 bitcarmanlee 阅读数:9249 版权声明:本文为博主原创文章,未经博主允许不得转 ...

  6. 【大数据开发】scala——tuple、list(含高阶方法)、wordcount案例、set、并行处理数据和sorted、sortBy、sortWith的区别

    文章目录 一.元组 1.1元组的定义.遍历 1.2元组的拉链.解链 二.list 2.1空list.list初始化.list遍历3种方式 2.2list的追加.拼接操作 2.3list的基本操作 2. ...

  7. Scala 排序函数 sorted sortBy sortWith

    排序方法在实际的应用场景中非常常见,Scala里面有三种排序方法,分别是: sorted,sortBy ,sortWith 分别介绍下他们的功能: (1)sorted 对一个集合进行自然排序,通过传递 ...

  8. Kotlin sortBy 、sortedBy、sortedWith、sortWith区别

    源码 import kotlin.test.*fun main(args: Array<String>) {val list = mutableListOf("aaa" ...

  9. scala中sortBy与sortWith区别

    (1)Scala中sortBy是以方法的形式存在的,并且是作用在Array或List集合排序上,并且这个sortBy默认只能升序,除非实现隐式转换或调用reverse方法才能实现降序. (2)sort ...

最新文章

  1. Django搭建个人博客:给文章加个漂亮的标题图
  2. JavaScript字幕滚动效果
  3. STVD下配置Cosmic编译器
  4. 【Java面试题】正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。
  5. ps4连接r星服务器稳定,移植到不同平台的《GTA5》有什么变化?与八年前相比,差距这么大...
  6. json为全局变量 vue_Vue-cli开发笔记二----------接口调用、配置全局变量
  7. Poj1995--Raising Modulo Numbers(快速幂)
  8. Qt4.8编译MYSQL驱动
  9. android配置多个url,Retrofit中使用多个baseUrl
  10. Linux命令行常用小结
  11. struts2 拦截器_Struts2 execAndWait拦截器示例,用于长时间运行的动作
  12. https://www.runoob.com/python/python-variable-types.html
  13. centos7 安装postgresql10
  14. Python基于OpenCV实现视频数据切割为图像数据
  15. UVa 10003 Cutting Sticks(区间DP)
  16. LINUX编译spandsp
  17. oracle qmon,10g QMON Architecture及AQ_TM_PROCESSES
  18. json文件下载--防止chrome直接打开方案
  19. Steve Jobs Said
  20. CSS——CSS基础知识

热门文章

  1. AndroidStudio Task不显示
  2. JAVA day06:代码作业(封装)
  3. Linux 压缩软件的使用
  4. 平板电脑:apple、中国挑大梁
  5. 正在更新office,请稍后 然后报错 解决办法
  6. python3爬取教务系统的个人学期课程表(无头谷歌浏览模拟登录)
  7. 电脑下载软件用什么软件好?安卓手机下载软件用哪个软件好?IDM下载器说:在做的都是弟弟
  8. cpu怎么开启php,cpu怎么换
  9. SlidesJS基本使用方法和官方文档解释 【Jquery幻灯片插件 Jquery相册插件】
  10. Linux ARM机器,源码安装mysql5.7.23,并且运行