apache-spark - 如果针对 Spark Dataframe 指定样本,withReplacement 会做什么
问题描述
阅读火花文档:http ://spark.apache.org/docs/2.1.0/api/python/pyspark.sql.html#pyspark.sql.DataFrame.sample
有这个布尔参数withReplacement
没有太多解释。
样本(有替换,分数,种子=无)
它是什么以及我们如何使用它?
解决方案
该参数withReplacement
控制结果的唯一性sample
。如果我们将数据集视为一桶球,withReplacement=true
则意味着从桶中取出一个随机球并将其放回其中。这意味着,可以再次捡起同一个球。
假设数据集中的所有唯一元素:
withReplacement=true
, 由于 的结果,可以多次产生相同的元素sample
。withReplacement=false
,数据集的每个元素只会被采样一次。import spark.implicits._ val df = Seq(1, 2, 3, 5, 6, 7, 8, 9, 10).toDF("ids") df.show() df.sample(true, 0.5, 5) .show df.sample(false, 0.5, 5) .show
结果
+---+ |ids| +---+ | 1| | 2| | 3| | 5| | 6| | 7| | 8| | 9| | 10| +---+ +---+ |ids| +---+ | 6| | 7| | 7| | 9| | 10| +---+ +---+ |ids| +---+ | 1| | 3| | 7| | 8| | 9| +---+
推荐阅读
- python - int() 的无效文字,以 10 为底,名称和两个数字
- typescript - VSCode for Mac 正在覆盖 textmate 范围以支持语义标记类型
- spring-boot - 如果我不制作响应式 Web 应用程序,为什么我需要 org.reactivestreams:reactive-streams?
- mysql - 如何编写包含具有空数据的行的 MySQL 查询?
- javascript - 此函数是否有适当的函数式编程名称 (f1, f2, val) => f1(f2(val), val);
- sql - Cosmos DB 集合查询中的行锁等价物
- typescript - aws-sdk 的 TypeScript 正确未处理的承诺拒绝
- c - C中的缓冲区溢出,具有分配双数组的功能
- python - Python残留参数和不可调用函数
- c - 为什么我可以使用错误的说明符 printf 并仍然得到输出?