如果针对 Spark 数据帧为样本指定了 withReplacement 做什么

Yuc*_*ong 4 apache-spark

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

有这个布尔参数withReplacement就不多解释了。

样本(带替换,分数,种子=无)

它是什么以及我们如何使用它?

rya*_*dam 15

该参数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
    
    Run Code Online (Sandbox Code Playgroud)

    结果

    +---+
    |ids|
    +---+
    |  1|
    |  2|
    |  3|
    |  5|
    |  6|
    |  7|
    |  8|
    |  9|
    | 10|
    +---+
    
    +---+
    |ids|
    +---+
    |  6|
    |  7|
    |  7|
    |  9|
    | 10|
    +---+
    
    +---+
    |ids|
    +---+
    |  1|
    |  3|
    |  7|
    |  8|
    |  9|
    +---+
    
    Run Code Online (Sandbox Code Playgroud)