spark实现二次排序java版

package test08;

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.Function;
import org.apache.spark.api.java.function.PairFunction;
import org.apache.spark.api.java.function.VoidFunction;
import scala.Tuple2;

/**
 * 
 */
public class SecondSort_Java {
    public static void main(String[] args){
        SparkConf conf =
                new SparkConf().setMaster("local").setAppName("SecondSort_Java");
        JavaSparkContext jsc = new JavaSparkContext(conf);
        JavaRDD<String>  textFileRDD=jsc.textFile("D:\\4.txt");
        JavaPairRDD<SecondSortEntity, String>  PairRDD= textFileRDD.mapToPair(new PairFunction<String, SecondSortEntity, String>() {
            public Tuple2<SecondSortEntity, String> call(String s) throws java.lang.Exception {
                String[] splits = s.split("\\s");
                SecondSortEntity sse = new SecondSortEntity(Integer.parseInt(splits[0]),
                        Integer.parseInt(splits[1]));
                return new Tuple2<SecondSortEntity, String>(sse, s);
            }
        });
        JavaPairRDD<SecondSortEntity, String>  SortRDD= PairRDD.sortByKey(false);
        JavaRDD<Object> map = SortRDD.map(new Function<Tuple2<SecondSortEntity, String>, Object>() {
            public Object call(Tuple2<SecondSortEntity, String> v1) throws Exception {
                return v1._2();
            }
        });
        map.foreach(new VoidFunction() {

            public void call(Object o) throws Exception {
                System.out.println(o);
            }
        });

        jsc.stop();
    }
}
排序前的数据
1 11 1
1 11 2
2 11 3
2 44 4
3 55 5
3 66 6 
4 77 7
4 88 8

排序后的数据
1 11 2
1 11 1
2 44 4
2 11 3
3 66 6 
3 55 5
4 88 8
4 77 7
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值