sample(是否放回, fraction, seed)
-
withReplacement:true抽取放回,false抽取不放回。
-
fraction:
1)false抽取不放回的情况下,抽取的概率(0-1)。
0-全不抽
1-全抽
2)true抽取放回的情况下,抽取的次数。 -
seed:随机数种子。
package com.atguigu
import org.apache.spark.rdd.RDD
import org.apache.spark.{HashPartitioner, Partitioner, SparkConf, SparkContext}
object Trans {
def main(args: Array[String]): Unit = {
val conf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("Spark01_Partition")
//构建spark上下文对象
val sc = new SparkContext(conf)
val rdd: RDD[Int] = sc.makeRDD(1 to 10)
val rdd1: RDD[Int] = rdd.sample(true,2)
val rdd2: RDD[Int] = rdd.sample(false,0.5)
val rdd3: RDD[Int] = rdd.sample(false,0.5,2)
rdd1.collect().foreach(println)
println("********")
rdd2.collect().foreach(println)
println("********")
rdd3.collect().foreach(println)
sc.stop()
}
}
1
1
1
1
2
2
3
3
4
4
5
6
6
6
6
7
8
10
10
10
10
********
2
7
8
********
3
4
6
7
9
随机数种子固定之后,随机数也就变成了固定的一些数字。
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
import scala.util.Random
object Trans {
def main(args: Array[String]): Unit = {
val r1 = new Random(1000)
for(i <- 1 to 10) {
println(r1.nextInt(1000))
}
println("**************")
val r2 = new Random(1000)
for(i <- 1 to 10) {
println(r2.nextInt(1000))
}
sc.stop()
}
}
487
935
676
124
792
349
641
845
264
450
**************
487
935
676
124
792
349
641
845
264
450










网友评论