distinct([numTasks])) 案例
- 作用:對源RDD進行去重後返回一個新的RDD。默認情況下,只有8個並行任務來操作,但是可以傳入一個可選的numTasks參數改變它。
- 需求:創建一個RDD,使用distinct()對其去重。
package com.dark.spark.SparkStudent.Spark_RDD
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object Spark30 extends App {
// 設定Spark計算環境
val config: SparkConf = new SparkConf().setMaster("local[*]").setAppName("WordCount")
// 創建上下文
val sc = new SparkContext(config)
private val listRDD: RDD[Int] = sc.makeRDD(List(1,2,1,5,2,9,6,1))
// 生成數據,按照指定的規則進行分組
// 分組後的數據形成了對偶元組,K,表示分組的key,V表示分組的數據集合
private val distinctRDD: RDD[Int] = listRDD.distinct()
distinctRDD.collect().foreach(println)
}
去重之後,順序打亂了,shuffle數據重組
1
2
5
6
9