我需要用 2.2*10^9 行打乱文本文件。有没有办法将它加载到 Spark 中,然后并行地洗牌每个分区(对我来说,在分区范围内洗牌就足够了),然后将其溢出回文件?
要仅在分区内进行洗牌,您可以执行以下操作:
rdd.mapPartitions(new scala.util.Random().shuffle(_))
打乱整个 RDD:
rdd.mapPartitions(iter => {
val rng = new scala.util.Random()
iter.map((rng.nextInt, _))
}).partitionBy(new HashPartitioner(rdd.partitions.size)).values
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)