SPARK是Dataframes统一采样的样本方法吗?

时间:2015-07-26 02:39:29

标签: apache-spark sample spark-dataframe

我想从数据框中随机选择一定数量的行,我知道样本方法可以做到这一点,但我担心我的随机性应该是统一采样吗?所以,我想知道Spark on Dataframes的样本方法是否统一?

由于

2 个答案:

答案 0 :(得分:12)

这里有一些代码路径:

  • 如果withReplacement = false && fraction > .4,那么它会使用加强随机数生成器(rng.nextDouble() <= fraction)并让它完成工作。 这看起来非常均匀。
  • 如果withReplacement = false && fraction <= .4,那么它使用更复杂的算法(GapSamplingIterator),看起来也很均匀。乍一看,看起来应该是统一的
  • 如果withReplacement = true它接近同一件事,except it can duplicate by the looks of it那么这对我来说就像它不会像前两个那样统一

答案 1 :(得分:0)

是的,它是统一的,有关更多信息,您可以尝试下面的代码。 我希望这可以澄清。

我认为这应该可以解决问题,其中“数据”是您的数据框架。 val splits = data.randomSplit(Array(0.7,0.3)) val(trainingData,testData)=(splits(0),splits(1))