排序sortByKey,和sortBy
普通排序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相关推荐
- Scala 排序函数 sorted sortBy sortWith
排序方法在实际的应用场景中非常常见,Scala里面有三种排序方法,分别是: sorted,sortBy ,sortWith 分别介绍下他们的功能: (1)sorted 对一个集合进行自然排序,通过传递 ...
- Spark rdd之sortBy
文章目录 源码 示例 sortBy底层实现(keyBy+sortByKey) sortBy + 隐式参数实现自定义排序[方式1] sortBy + 隐式参数实现自定义排序[方式2] 自定义排序+sor ...
- Spark学习之路(八):分别使用Java与Scala实现Spark二次排序
内容简介 一.Spark二次排序的概念 二.实现二次排序的详细步骤(Java语言) 三.二次排序代码演示 1.Java版本 2.Scala版本 四.总结 一.Spark二次排序的概念 排序操作是数据处 ...
- spark源码解读4之SortByKey
更多代码请见:https://github.com/xubo245/SparkLearning spark源码解读系列环境:spark-2.0.1 (20161103github下载版) 1.理解 1 ...
- 如何通过日期属性对数组进行排序
说我有一些对象的数组: var array = [{id: 1, date: Mar 12 2012 10:00:00 AM}, {id: 2, date: Mar 8 2012 08:00:00 A ...
- 按属性值对对象数组进行排序
我使用AJAX获得了以下对象并将它们存储在数组中: var homes = [{"h_id": "3","city": "Dall ...
- scala的三个排序方法
sorted 对一个集合进行自然排序,通过传递隐式的Ordering 无需参数 def sorted[B >: A](implicit ord: Ordering[B]): Repr scala ...
- scala里集合排序函数的使用
2019独角兽企业重金招聘Python工程师标准>>> 排序方法在实际的应用场景中非常常见,Scala里面有三种排序方法,分别是: sorted,sortBy ,sortWith 分 ...
- scala中sorted,sortby,sortwith的用法(转)
scala中sorted,sortWith,sortBy用法详解 2017年07月23日 23:07:51 bitcarmanlee 阅读数:9249 版权声明:本文为博主原创文章,未经博主允许不得转 ...
最新文章
- 最新 crtmpserver 源码的获取方法
- golang实现图片上传和下载
- C#编程语言之Unix时间戳转换为本地时间的方法
- java点到原点距离_java-从经纬度坐标到欧氏距离(EuclideanDistance)完整代码
- 网页版消消乐快速实现,无代码吗iVX 真那么简单?
- API信息全掌控,方便你的日志管理——阿里云推出API网关打通日志服务
- linux查看cpu占用率_Linux 性能查看
- 移动互联网创新39个热点
- xshell上传文件到linux很慢,XShell上传文件到Linux服务器上
- 机械制图与计算机绘图的区别,机械制图与计算机绘图教案.doc
- EditText属性设置
- 数据标准化/归一化normalization
- C 语言基础-什么是常量、变量?
- 安全性(security)度量
- 研究生查分方式-查分时间大汇总-文都管联院
- 查看新增串口、USB设备
- 查询局域网内在线电脑IP地址
- matlab将空间描述转变为约当阵,matlab求约当标准型
- android课程助手,小鹅通课堂助手APP
- php课程banner,如何利用react 实现banner轮播效果
热门文章
- 2016.1云南之旅
- Java新手入门200例122之通过Java反射操作成员变量,set 和 get
- Java项目源码SSM宿舍管理系统|寝室
- java中的控制器_SpringMVC基础(一)_控制器
- upupoo(网页壁纸)自主修改一:农历
- openwrite Test
- android jdk和ndk下载地址,cocos2d-x Android(SDK,NDK,JDK,ANT)下载地址
- 云游玩家福利 — 腾讯、罗技G“强强联手”,今年推出云游掌上电脑
- 如何“避雷”(化解风险)
- SSM视频点播系统3.0