一、sample
描述:返回这个DataFrame抽样后的子集
参数:
1、withReplacement:元素可以多次抽样(在抽样时替换)
2、fraction:期望样本的大小作为RDD大小的一部分,
当withReplacement=false时:选择每个元素的概率;分数一定是[0,1] ;
当withReplacement=true时:选择每个元素的期望次数; 分数必须大于等于0。
3、seed:随机数生成器的种子,这个参数可以默认,主要是不好把控。
例子
scala> import spark.implicits._
import spark.implicits._
scala> val df = Seq(1, 2, 3, 5, 6, 7, 8, 9, 10).toDF("ids")
df: org.apache.spark.sql.DataFrame = [ids: int]
scala> df.show()
+---+
|ids|
+---+
| 1|
| 2|
| 3|
| 5|
| 6|
| 7|
| 8|
| 9|
| 10|
+---+
1、元素不可以多次抽样:withReplacement=false,每个元素被抽取到的概率为0.5:fraction=0.5
scala> df.sample(false, 0.5).show
+---+
|ids|
+---+
| 1|
| 3|
| 5|
| 6|
| 8|
+---+
2、元素可以多次抽样:withReplacement=true,每个元素被抽取到的期望次数为2:fraction=2
scala> df.sample(true, 2).show
+---+
|ids|
+---+
| 1|
| 2|
| 3|
| 3|
| 5|
| 5|
| 6|
| 7|
| 7|
| 8|
| 8|
| 9|
| 9|
| 10|
| 10|
+---+
参考文章
1、https://blog.csdn.net/leen0304/article/details/78818743
注意:本文归作者所有,未经作者允许,不得转载