我想从数据框中随机选择一定数量的行,我知道样本方法可以做到这一点,但我担心我的随机性应该是统一采样吗?所以,我想知道Spark on Dataframes的样本方法是否统一?
由于
答案 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))