如何有效地将 a 拆分RDD[T]
为带有元素的Seq[RDD[T]]
/并保留原始顺序?Iterable[RDD[T]]
n
我希望能够写出这样的东西
RDD(1, 2, 3, 4, 5, 6, 7, 8, 9).split(3)
这应该会导致类似
Seq(RDD(1, 2, 3), RDD(4, 5, 6), RDD(7, 8, 9))
spark提供这样的功能吗?如果不是,那么实现这一目标的有效方法是什么?
val parts = rdd.length / n
val rdds = rdd.zipWithIndex().map{ case (t, i) => (i - (i % parts), t)}.groupByKey().values.map(iter => sc.parallelize(iter.toSeq)).collect
看起来不是很快。。