我的RDD类型为:
dataset :org.apache.spark.rdd.RDD[(String, Double)] = MapPartitionRDD[26]
相当于(Pedro, 0.0833), (Hello, 0.001828) ...
我想总结所有价值0.0833+0.001828..
,但我找不到合适的价值
溶液
答案 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。