如何将一组向量相加并在Spark中生成一个新向量

时间:2017-08-28 17:23:47

标签: java apache-spark spark-dataframe

我正在使用Spark的Java API,并使用以下架构读取大量数据:

profits (Array of Double values):
--------------------------------- 
[1.0,2.0,3.0] 
[2.0,3.0,4.0] 
[4,0,6.0]

一旦我有了数据帧,我想计算一个新的向量,它是所有向量的总和:

Result:
[7.0,11.0,7.0]

我在Scala和Python上看到了一些关于这方面的例子,但没有任何关于Java的例子。

1 个答案:

答案 0 :(得分:0)

val withIndex = profits.zipWithIndex // ((a,0),(b,1),(c,2))

我们需要使用索引作为键:

val indexKey = withIndex.map{case (k,v) => (v,k)}  //((0,a),(1,b),(2,c))

Finallly,

counts = indexKey.reduceByKey(lambda k, v: k + v)