1. 程式人生 > 其它 >第五章_Spark核心程式設計_Rdd_sample運算元

第五章_Spark核心程式設計_Rdd_sample運算元

1. 定義

    /*
    * 1. 定義
    *       def sample(
    *         withReplacement: Boolean,
    *         fraction: Double,
    *         seed: Long = Utils.random.nextLong): RDD[T]
    *   withReplacement : 抽取資料後是否將資料返回 true(放回),false(丟棄)
    *   fraction(抽取的機率) : 如果抽取不放回的場合:資料來源中每條資料被抽取的概率,基準值的概念
    *                        如果抽取放回的場合:表示資料來源中的每條資料被抽取的可能次數
    *   seed(隨機數種子) : 抽取資料時隨機演算法的種子
    *                    如果不傳遞第三個引數,那麼使用的是當前系統時間
    *
    * 2. 功能
    *     根據指定的規則從資料集中抽取資料
    *
    * 
*/
  object sampleTest extends App {

    val sparkconf: SparkConf = new SparkConf().setMaster("local").setAppName("groupByTest")

    val sc: SparkContext = new SparkContext(sparkconf)

    val rdd = sc.makeRDD(List(1, 2, 3, 4, 5, 6, 7, 8, 10, 100))

    private val rdd1: RDD[Int] = rdd.sample(true, 0.5)

    println(s
"當前分割槽數 : ${rdd1.getNumPartitions}") println(rdd1.collect().mkString(",")) sc.stop() /* * 執行結果 * 當前分割槽數 : 2 1,1,8,10 * * */ }