阅读 Spark 文档:http://spark.apache.org/docs/2.1.0/api/python/pyspark.sql.html#pyspark.sql.DataFrame.sample

有这个 bool 参数 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|
    +---+
    
  • 关于apache-spark - 如果针对 Spark 数据帧为样本指定了 withReplacement 做什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53689047/

    10-13 01:20