Spark IMF传奇行动第19课:spark排序总结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark IMF传奇行动第19课:spark排序总结相关的知识,希望对你有一定的参考价值。
今晚听了王家林老师的Spark IMF传奇行动第19课:spark排序,作业是:1、scala 实现二次排序,使用object apply 2;自己阅读RangePartitioner
代码如下:
/** * Created by 王家林 on 2016/1/10. */ object SecondarySortApp { def main(args: Array[String]){ val conf = new SparkConf() //创建SparkConf对象 conf.setAppName("SecondarySortApp") //设置应用程序名称,程序运行的监控界面可以看到名称 conf.setMaster("local") //此时,程序在本地运行,不需要安装Spark集群 val sc = new SparkContext(conf) //通过传入SparkConf实例来定制Spark运行具体参数和配置信息来创建SparkContext对象 val lines = sc.textFile("src/Scdfile") //读取一个本地文件 val pairWithKey = lines.map(line => ( new SecondarySortKey(line.split(" ")(0).toInt,line.split(" ")(1).toInt) , line )) val sorted = pairWithKey.sortByKey(false) val sortedResult = sorted.map(line => line._2) sortedResult.collect.foreach(println) sc.stop() } class SecondarySortKey(val first:Int,val second:Int) extends Ordered[SecondarySortKey] with Serializable{ def compare(other:SecondarySortKey):Int ={ if(this.first - other.first !=0){ this.first - other.first }else{ this.second - other.second } } }
排序结果为:
8 7
4 3
4 1
3 2
2 3
2 1
后续课程可以参照新浪微博 王家林_DT大数据梦工厂:http://weibo.com/ilovepains
王家林 中国Spark第一人,微信公共号DT_Spark
转发请写明出处。
以上是关于Spark IMF传奇行动第19课:spark排序总结的主要内容,如果未能解决你的问题,请参考以下文章
Spark IMF传奇行动第17课Transformations实战总结
Spark IMF传奇行动第21课:从Spark架构中透视Job
Spark IMF传奇行动第18课:RDD持久化广播累加器总结
Spark IMF传奇行动第22课:RDD的依赖关系彻底解密