有没有一种有效的方法可以直接汇总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.
答案 0 :(得分:2)
您想要的是使用feature
从RDD.map
向量中提取第一个元素,然后使用DoubleRDDFunctions.sum
对它们求和:
val sum: Double = rdd.map(_.features(0)).sum()