从巨大的RDD中选择每个第3个元素

时间:2017-03-03 19:25:05

标签: scala apache-spark rdd

如果我的RDD看起来像:

var rdd = Array(4, 5, 7, 8, 9, 5, 3, 2, 1, 2, 13, 12, .....)

如何选择位于相同距离的元素,比如每三个元素,例如

var rdd1 = Array(4, 8, 3, 2, ...)
var rdd2 = Array(5, 9, 2, 13, ..)
var rdd3 = Array(7, 5, 1, 12, ..)

我试过的是,使用zipWithIndex,然后计算索引%3 = 0/1/2。

var rdd1/2/3 =  rdd.zipWithIndex.filter(case (val, index) => index%3 ==0/1/2)

(原谅确切的语法)

该方法有效,但对于大型Rdds效率非常低。你有什么其他方法可以做Scala?谢谢。非常感谢您的帮助。

0 个答案:

没有答案