/* * 1.定义 * def sortByKey(ascending: Boolean = true, numPartitions: Int = self.partitions.length) * : RDD[(K, V)] = self.withScope * ascending : true-正序 false-逆序 * numPartitions : 排序完后,对结果数据的分区数 * * 2.功能 * 拉取所有分区节点的数据,根据 key对Rdd进行排序 * * 3.note * key的数据类型 必须实现 Ordered 接口(特质) * */
object sortByKeyTest1 extends App { val sparkconf: SparkConf = new SparkConf().setMaster("local").setAppName("distinctTest") val sc: SparkContext = new SparkContext(sparkconf) val rdd = sc.makeRDD(List(("a", 88), ("b", 95), ("a", 91), ("b", 93), ("a", 95), ("b", 98)), 2) rdd.saveAsTextFile("Spark_319/src/output/01") private val rdd2: RDD[(String, Int)] = rdd.sortByKey(false) rdd2.saveAsTextFile("Spark_319/src/output/02") println(rdd2.collect().mkString(",")) sc.stop() }