Yog*_*esh 5 scala dataframe apache-spark apache-spark-sql pyspark
Q1. 我试图使用带有参数 withReplacement: false,fraction: 0.6 的示例函数从 Spark 数据帧(13 行)中获取一个简单的随机样本,但每次运行它时它都会给我不同大小的样本,尽管它在以下情况下工作正常我设置了第三个参数(种子)。为什么这样?
Q2。随机数生成后样本是如何获得的?
提前致谢
随机数生成后样本是如何获得的?
根据您想要采样的分数,有两种不同的算法。您可以检查Justin对 SPARK 的 Pihony 回答Is Sample method on Dataframes Uniform Samples?
每次运行它时它都会给我不同大小的样本,尽管当我设置第三个参数(种子)时它工作得很好。为什么这样?
如果分数高于采样,则通过简单的过滤器RandomSampler.defaultMaxGapSamplingFraction
完成:
items.filter { _ => rng.nextDouble() <= fraction }
Run Code Online (Sandbox Code Playgroud)
否则,稍微简化一下,它会drop
使用随机整数重复调用方法并获取下一项。
记住这一点,很明显,假设 , 等于GapSamplingIterator
fraction * rdd.count 没有任何问题,则返回的元素数量将是随机的且具有均值。如果设置种子,您将获得相同的随机数序列,因此样本中包含相同的元素。
归档时间: |
|
查看次数: |
12186 次 |
最近记录: |