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

本文介绍如何在大数据处理中实现RDD的自定义分区,确保同一班级的学生数据集中到同一分区,并在此基础上进行自定义排序,首先根据数学成绩降序排序,数学成绩相同时依据语文成绩再次排序。此外,提供了示例代码和百度网盘的资料链接供参考。
摘要由CSDN通过智能技术生成

自定义排序

例题:

先按照数学成绩进行倒叙排序  如果数学成绩相同 语文成绩谁高谁在前
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 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值