首页 > 代码库 > sspark自定义排序
sspark自定义排序
/** * Created by willian on 2017/3/19. * 自定义排序,例如 年龄相同 再比较颜值 */ object CustomSort { def main(args: Array[String]): Unit = { val conf: SparkConf = new SparkConf().setAppName("flow_analysis").setMaster("local") val sc = new SparkContext(conf) val person_rdd: RDD[(String, Int, Int)] = sc.parallelize(List(("zhangweilun",20,18),("lixueping",20,19))) val sorted_rdd: RDD[(String, Int, Int)] = person_rdd.sortBy(item =>{ Person(item._3,item._2,item._1) },ascending = false) println(sorted_rdd.collect().toBuffer) } } //注意:必须实现Serializable接口,并且集成orderd,重写比较方法 case class Person(var look:Int,var age:Int,var name:String) extends Ordered[Person] with Serializable{ override def compare(that: Person): Int = { if (this.look == that.look){ that.age - that.age }else{ this.look - that.look } } }
如上,加入存储数据的类,并重写比较方法即可
sspark自定义排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。