Spark RDD:在不创建SQL DataFrame的情况下对一列求和

时间:2016-05-08 16:58:32

标签: scala apache-spark

有没有一种有效的方法可以直接汇总spark RDD中列中的值?我不想为此创建SQL DataFrame。

我有一个LabeledPoint的RDD,其中每个LabeledPoint使用稀疏矢量表示。假设我对第一个特征的值的总和感兴趣 以下代码对我不起作用:

//lp_RDD is RDD[LabeledPoint]
var total = 0.0
for(x <- lp_RDD){
    total += x.features(0)
}

此循环后totalAmt的值仍为0.

1 个答案:

答案 0 :(得分:2)

您想要的是使用featureRDD.map向量中提取第一个元素,然后使用DoubleRDDFunctions.sum对它们求和:

val sum: Double = rdd.map(_.features(0)).sum()