30 - Spark - distinct算子

distinct([numTasks])) 案例

  1. 作用:對源RDD進行去重後返回一個新的RDD。默認情況下,只有8個並行任務來操作,但是可以傳入一個可選的numTasks參數改變它。
  2. 需求:創建一個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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章