普通排序sortByKey

package com.aura.liu.Dayof20

import org.apache.log4j.{Level, Logger}
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.util.AccumulatorV2

import scala.collection.mutable

object SparkSortOps {
def main(args: Array[String]): Unit = {
//局部调整spark应用的日志级别
Logger.getLogger(“org.apache.spark”).setLevel(Level.WARN);
Logger.getLogger(“org.apache.hadoop”).setLevel(Level.WARN);
Logger.getLogger(“org.spark_project”).setLevel(Level.WARN);
val conf=new SparkConf()
.setAppName(s"${SparkSortOps.getClass.getSimpleName}")
.setMaster(“local[2]”)
val sc=new SparkContext(conf)
val list=List(
“hello you”,
“i hate you”,
“i miss you”,
“i love you”,
“fuck you”
)
val words=sc.parallelize(list).flatMap(_.split("\s+"))

   val ret=words.map((_,1)).reduceByKey(_+_)

ret.map{case (key,count)=>(count,key)}//按照count进行排序
//定义排序规则
.sortByKey(false,1)
.map{case (count,key)=>(key,count)}
.foreach(println)

sc.stop()

}

}

sortBy排序

package com.aura.liu.Dayof20

import org.apache.log4j.{Level, Logger}
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

import scala.reflect.ClassTag

object SparkSortOps1 {
def main(args: Array[String]): Unit = {

//局部调整spark应用的日志级别
Logger.getLogger("org.apache.spark").setLevel(Level.WARN);
Logger.getLogger("org.apache.hadoop").setLevel(Level.WARN);
Logger.getLogger("org.spark_project").setLevel(Level.WARN);
val  conf=new SparkConf().setAppName(s"${SparkSortOps1.getClass.getSimpleName}").setMaster("local[2]")
val sc=new SparkContext(conf)
val list=List("hello you","i hate you","i miss you","i love you","fuck you"
)
val words=sc.parallelize(list).flatMap(_.split("\\s+"))val ret=words.map((_,1)).reduceByKey(_+_)var sortedRDD:RDD[(String,Int)]=ret.sortBy(t
=>t._2,true,1)(new Ordering[Int](){override def compare(x:Int,y:Int)={y.compareTo(x)}},ClassTag.Int.asInstanceOf[ClassTag[Int]]
)
sortedRDD.foreach(println)
println("======定义排序规则根据两列数据进行排序================")
sortedRDD=ret.sortBy(t=>t,true,1)(

new Ordering(String,Int){
override def compare(x: (String, Int), y: (String, Int))={
var ret=y._2.compareTo(x._2)
if (ret==0){
ret=y._1.compareTo(x._1)
}
ret
}
},
ClassTag.Object.asInstanceOf[ClassTag[(String,Int)]]
)
sortedRDD.foreach(println)
sc.stop()

}

}

排序sortByKey,和sortBy相关推荐

  1. Scala 排序函数 sorted sortBy sortWith

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

  2. Spark rdd之sortBy

    文章目录 源码 示例 sortBy底层实现(keyBy+sortByKey) sortBy + 隐式参数实现自定义排序[方式1] sortBy + 隐式参数实现自定义排序[方式2] 自定义排序+sor ...

  3. Spark学习之路(八):分别使用Java与Scala实现Spark二次排序

    内容简介 一.Spark二次排序的概念 二.实现二次排序的详细步骤(Java语言) 三.二次排序代码演示 1.Java版本 2.Scala版本 四.总结 一.Spark二次排序的概念 排序操作是数据处 ...

  4. spark源码解读4之SortByKey

    更多代码请见:https://github.com/xubo245/SparkLearning spark源码解读系列环境:spark-2.0.1 (20161103github下载版) 1.理解 1 ...

  5. 如何通过日期属性对数组进行排序

    说我有一些对象的数组: var array = [{id: 1, date: Mar 12 2012 10:00:00 AM}, {id: 2, date: Mar 8 2012 08:00:00 A ...

  6. 按属性值对对象数组进行排序

    我使用AJAX获得了以下对象并将它们存储在数组中: var homes = [{"h_id": "3","city": "Dall ...

  7. scala的三个排序方法

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

  8. scala里集合排序函数的使用

    2019独角兽企业重金招聘Python工程师标准>>> 排序方法在实际的应用场景中非常常见,Scala里面有三种排序方法,分别是: sorted,sortBy ,sortWith 分 ...

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

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

最新文章

  1. 最新 crtmpserver 源码的获取方法
  2. golang实现图片上传和下载
  3. C#编程语言之Unix时间戳转换为本地时间的方法
  4. java点到原点距离_java-从经纬度坐标到欧氏距离(EuclideanDistance)完整代码
  5. 网页版消消乐快速实现,无代码吗iVX 真那么简单?
  6. API信息全掌控,方便你的日志管理——阿里云推出API网关打通日志服务
  7. linux查看cpu占用率_Linux 性能查看
  8. 移动互联网创新39个热点
  9. xshell上传文件到linux很慢,XShell上传文件到Linux服务器上
  10. 机械制图与计算机绘图的区别,机械制图与计算机绘图教案.doc
  11. EditText属性设置
  12. 数据标准化/归一化normalization
  13. C 语言基础-什么是常量、变量?
  14. 安全性(security)度量
  15. 研究生查分方式-查分时间大汇总-文都管联院
  16. 查看新增串口、USB设备
  17. 查询局域网内在线电脑IP地址
  18. matlab将空间描述转变为约当阵,matlab求约当标准型
  19. android课程助手,小鹅通课堂助手APP
  20. php课程banner,如何利用react 实现banner轮播效果

热门文章

  1. 2016.1云南之旅
  2. Java新手入门200例122之通过Java反射操作成员变量,set 和 get
  3. Java项目源码SSM宿舍管理系统|寝室
  4. java中的控制器_SpringMVC基础(一)_控制器
  5. upupoo(网页壁纸)自主修改一:农历
  6. openwrite Test
  7. android jdk和ndk下载地址,cocos2d-x Android(SDK,NDK,JDK,ANT)下载地址
  8. 云游玩家福利 — 腾讯、罗技G“强强联手”,今年推出云游掌上电脑
  9. 如何“避雷”(化解风险)
  10. SSM视频点播系统3.0