PairRDD的总和值

时间:2016-03-15 12:32:08

标签: scala apache-spark

我的RDD类型为:

dataset :org.apache.spark.rdd.RDD[(String, Double)] = MapPartitionRDD[26]

相当于(Pedro, 0.0833), (Hello, 0.001828) ...

我想总结所有价值0.0833+0.001828..,但我找不到合适的价值 溶液

2 个答案:

答案 0 :(得分:7)

考虑输入数据,您可以执行以下操作:

// example
val datasets = sc.parallelize(List(("Pedro", 0.0833), ("Hello", 0.001828))) 
datasets.map(_._2).sum()
// res3: Double = 0.085128
// or
datasets.map(_._2).reduce(_ + _)
// res4: Double = 0.085128
// or even
datasets.values.sum()
// res5: Double = 0.085128

答案 1 :(得分:2)

像这样?:

map(_._2).reduce((x, y) => x + y)

细分:将元组映射到双精度值,然后通过求和减少RDD。