我想从数据框中随机选择行数,我知道样本方法可以做到这一点,但我担心我的随机性应该是均匀抽样吗?所以,我想知道Spark对Dataframes的样例方法是否统一?
谢谢
这里有几个代码路径:
- 如果
withReplacement = false && fraction > .4
,那么它使用一个增强的随机数生成器(rng.nextDouble() <= fraction
),并让它完成工作。这看起来会很统一 - 如果
withReplacement = false && fraction <= .4
,那么它使用更复杂的算法(GapSamplingIterator
),看起来也很均匀。乍一看,看起来应该是统一的 - 如果
withReplacement = true
,它几乎是相同的事情,除了它可以复制它的外观,所以在我看来,它不会像前两个一样均匀
是的,它是统一的,更多信息可以尝试下面的代码。我希望这能澄清。
我认为这应该做的伎俩,其中"数据"是你的数据帧。val split = data.randomSplit(Array(0.7, 0.3))val (trainingData, testData) = (split (0), split (1))