元素明智的添加在spark rdd

时间:2017-03-29 03:42:07

标签: scala apache-spark

我有RDD的RDD [Array [Array [Double]]]。所以基本上每个元素都是一个矩阵。我需要做元素明智的补充。

所以如果rdd的第一个元素是

    1 2
    3 4

,第二个元素是

   5 6
   7 8 

最后我需要

   6 8
   10 12

我已查看过zip但不确定我是否可以在这种情况下使用它。

1 个答案:

答案 0 :(得分:1)

是的,您可以使用zip,但是您必须使用两次,一次用于行,一次用于列:

val rdd = sc.parallelize(List(Array(Array(1.0,2.0),Array(3.0,4.0)), 
                              Array(Array(5.0,6.0),Array(7.0,8.0))))

rdd.reduce((a,b) => a.zip(b).map {case (c,d) => c.zip(d).map{ case (x,y) => x+y}})