scala中想要实现对一组自定义对象的排序,使用比较器的实现
1.自定义对象实现特质Ordered,同时实现Serializable的序列化
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
/**
* Created by hqs on 2018/1/27.
*/
object SortDemo {
def main(args: Array[String]): Unit = {
val conf = new SparkConf()
.setMaster("local")
.setAppName(SortDemo.getClass.getName)
val sc = new SparkContext(conf)
val data: RDD[String] = sc.makeRDD(List("zhangsan 18 60", "lisi 21 70", "wangmazi 20 70", "kuangsan 26 99"))
val file: RDD[(String, Int, Int)] = data.map({
line => {
val fields = line.split(" ")
val name = fields(0)
val age = fields(1).toInt
val fv = fields(2).toInt
(name, age, fv)
}
})
// file.sortBy(t => (-t._3,t._2)).foreach(println) 元组的直接排序,最简单的方法。