摘要:本文主要向大家介绍了【云计算】Java,Spark中二次排序解析,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。
本文主要向大家介绍了【云计算】Java,Spark中二次排序解析,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。
一.原理:
二次排序的思想:
是有两列数据,可能存在第一列数据相同时第二列数据不相同的情况,这时候就要考虑用二次排序的思想。
首先想到的是,将第二列的数据封装成对象,当第一列数据相同的时候,要按照第二列排序,这时候,我们就可以按照封装成的对象进行排序。对象可以单独封装成类。实现Serializable,Comparable两个接口。
排序顺序倒叙问题:第一列排序的时候,我们可以按照sortbykey中的true或者false来控制顺序,里边内层排序的时候,我们可以通过控制封装成的对象中的排序的正负号,来控制顺序。
排序的数字:
3 10 5 2 6 5 8 123 1 4 4 123 5 432 3 54 5 121 8 654 3 98
二.代码实现:
?上边的部分是将按照最前边的数字排序的:也就是按照第一列数据进行排序的
package com.bjsxt.spark.others.secondsort; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaPairRDD; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.api.java.function.PairFunction; import org.apache.spark.api.java.function.VoidFunction; import scala.Tuple2; /** * 二次排序 * * @author root * */ public class SecondarySortTest { public static void main(String[] args) { SparkConf sparkConf = new SparkConf().setMaster("local").setAppName("SecondarySortTest"); final JavaSparkContext sc = new JavaSparkContext(sparkConf); JavaRDD
下边的是对于里边对象的排序,也就是按照第二列数据排序的:
package com.bjsxt.spark.others.secondsort; import java.io.Serializable; public class SecondSortKey implements Serializable, Comparable
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标大数据云计算大数据安全频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号