object SortDemo6 { def main(args: Array[String]): Unit = { val conf = new SparkConf() .setMaster("local") .setAppName(SortDemo4.getClass.getSimpleName) val sc = new SparkContext(conf) val line: RDD[String] = sc.parallelize(List("dd 17 10", "de 17 30", "da 15 28", "db 14 28", "dc 17 28")) val person = line.map(t => { val str = t.split(" ") val name = str(0) val age = str(1).toInt val fv = str(2).toInt (name, age, fv) }) /** * Ordering[(Int,Int)],里面的参数是要参加排序的 * on[(String,Int,Int)],里面的参数是原函数的参数 调用Ordering.on方法 */ implicit val obj=Ordering[(Int,Int)].on[(String,Int,Int)](t=>(-t._3,t._2)) val res = person.sortBy(t=>t) res.foreach(println) } }