scala 实现自定义排序算法

scala 实现自定义排序算法

--数据aaa.txt:
4 1
3 2
8 7
2 3
4 3
2 1



package com.lhj.www

class KeyPair(val first:Int,val second:Int) extends Ordered[KeyPair] with Serializable{
   def compare(other: KeyPair): Int = {
    if(this.first-other.first != 0){
      this.first-other.first
    }else{
      this.second-other.second
    }
  }
}


package com.lhj.www

import org.apache.spark.{SparkContext, SparkConf}

object Test {
  def main(args: Array[String]) {
    val conf = new SparkConf().setAppName("my app!!!").setMaster("local")
    val sc = new SparkContext(conf)

    val sorted = sc.textFile("aaa.txt").map(x=>(new KeyPair(x.split(" ")(0).toInt,x.split(" ")(1).toInt),x)).sortByKey(false)

//    (com.lhj.www.KeyPair@63c41670,8 7)
//    (com.lhj.www.KeyPair@5e9d463b,4 3)
//    (com.lhj.www.KeyPair@276dfc04,4 1)
//    (com.lhj.www.KeyPair@25bc7ed5,3 2)
//    (com.lhj.www.KeyPair@7a2ae54d,2 3)
//    (com.lhj.www.KeyPair@163460e4,2 1)

    val result=sorted.map(x=>(x._2))
    result.collect().foreach(println)
  }
}



--结果:
8 7
4 3
4 1
3 2
2 3
2 1

    原文作者:排序算法
    原文地址: https://blog.csdn.net/gdmzlhj1/article/details/50788929
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞