SPARK Dataframes 上的采样方法是否统一采样?
SPARK Is sample method on Dataframes uniform sampling?
我想从数据框中随机选择 select 行数,我知道采样方法可以做到这一点,但我担心我的随机性应该是均匀采样?所以,我想知道Spark on Dataframes的示例方法是否统一?
谢谢
这里有几个代码路径:
- 如果
withReplacement = false && fraction > .4
则它使用增强的随机数生成器 (rng.nextDouble() <= fraction
) 并让它完成工作。 这看起来会很统一。
- 如果
withReplacement = false && fraction <= .4
则它使用更复杂的算法 (GapSamplingIterator
),该算法看起来也很统一。一看好像也应该是统一的
- 如果
withReplacement = true
它确实接近同一件事,except it can duplicate by the looks of it,所以在我看来它不像前两个那样统一
是的,它是统一的,有关更多信息,您可以尝试下面的代码。
我希望这能澄清。
我认为这应该可以解决问题,其中 "data" 是您的数据框。
val splits = data.randomSplit(数组(0.7, 0.3))
val (trainingData, testData) = (splits(0), splits(1))
我想从数据框中随机选择 select 行数,我知道采样方法可以做到这一点,但我担心我的随机性应该是均匀采样?所以,我想知道Spark on Dataframes的示例方法是否统一?
谢谢
这里有几个代码路径:
- 如果
withReplacement = false && fraction > .4
则它使用增强的随机数生成器 (rng.nextDouble() <= fraction
) 并让它完成工作。 这看起来会很统一。 - 如果
withReplacement = false && fraction <= .4
则它使用更复杂的算法 (GapSamplingIterator
),该算法看起来也很统一。一看好像也应该是统一的 - 如果
withReplacement = true
它确实接近同一件事,except it can duplicate by the looks of it,所以在我看来它不像前两个那样统一
是的,它是统一的,有关更多信息,您可以尝试下面的代码。 我希望这能澄清。
我认为这应该可以解决问题,其中 "data" 是您的数据框。 val splits = data.randomSplit(数组(0.7, 0.3)) val (trainingData, testData) = (splits(0), splits(1))