第五章_Spark核心程式設計_Rdd_sample運算元
阿新 • • 發佈:2022-03-23
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 * * */ }