我有RDD的RDD [Array [Array [Double]]]。所以基本上每个元素都是一个矩阵。我需要做元素明智的补充。
所以如果rdd的第一个元素是
1 2
3 4
,第二个元素是
5 6
7 8
最后我需要
6 8
10 12
我已查看过zip但不确定我是否可以在这种情况下使用它。
答案 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}})