RDD自定义分区方法(按班级把同一个班级的学生放到一个文件中)和自定义排序方法(先按数学成绩排序,数学成绩相同再按语文成绩排序)

自定义排序

例题:

先按照数学成绩进行倒叙排序  如果数学成绩相同 语文成绩谁高谁在前
tom 98 66
jack 55 55
bob 98 44
joe 44 99
max 60 79
peter 60 55
jerry 60 99
kay 99 99
kim 98 99

代码实现 带*****号表示是 关键词

object Z_Stor extends App {
     val conf = new SparkConf()
       .setAppName("sort")
       .setMaster("local[2]")
       val sc = new SparkContext(conf)
  sc.setLogLevel("ERROR")
  //从桌面读取数据
  val line = sc.textFile("C:\\Users\\Undo\\Desktop\\sort.txt").map(l=>{
    val lin=l.split(" ")
    (lin(0),lin(1).toInt,lin(2).toInt)
  })
//调用自己定义的排序类   ******调用sortBy() 方法         ******* false表示最后结果是倒序排序
  val order = line.sortBy(x=>UDFSort(x._2,x._3),false)
println(order.collect().toBuffer)   //***************foreach()输出会出现 乱序

sc.stop()//关流
}
//排序的样例类   *******继承Ordered
case class UDFSort(val cn:Int,val math:Int)extends 

你可能感兴趣的:(#,Spark,Core,大数据)