gpt4 book ai didi

apache-spark - Sparks RDD.randomSplit 实际上如何拆分 RDD

转载 作者:行者123 更新时间:2023-12-03 07:25:42 28 4
gpt4 key购买 nike

所以假设我有一个包含 3000 行的 rdd。前 2000 行属于 1 类,最后 1000 行属于 2 类。RDD 分为 100 个分区。

调用RDD.randomSplit(0.8,0.2)

该函数是否也会对 rdd 进行混洗?我们的分割是否只是简单地连续采样 rdd 的 20%?还是随机选择 20% 的分区?

理想情况下,生成的拆分具有与原始 RDD 相同的类分布。 (即 2:1)

谢谢

最佳答案

对于由 weights 数组定义的每个范围,都有一个单独的 mapPartitionsWithIndex 转换来保留分区。

每个分区都使用一组 BernoulliCellSamplers 进行采样。对于每个分割,它都会迭代给定分区的元素,如果下一个随机 Double 的值在归一化权重定义的给定范围内,则选择项目。给定分区的所有采样器都使用相同的 RNG 种子。意思是:

  • 不打乱 RDD
  • 除非偶然,否则不会采取连续的区 block
  • 从每个分区中随机抽取样本
  • 采集不重叠的样本
  • 要求对数据进行 n 次分割

关于apache-spark - Sparks RDD.randomSplit 实际上如何拆分 RDD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32933143/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com