要素を/に効果的に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
とても速く見えません..