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