#scala #apache-spark #sum #tuples #rdd
#scala #apache-spark #сумма #кортежи #rdd
Вопрос:
У меня есть RDD, который выглядит следующим образом
val elements = List((8, 12), (9, 10), (5, 16))
вывод должен выглядеть следующим образом
result_1 = 22 #sum of the first element
result_2 = 38 #sum of the second element
Ответ №1:
Существует несколько способов вычисления суммы.
val result1 = rdd.map(_._1).sum()
val result2 = rdd.map(_._2).sum()
val result = rdd.reduce((a, b) => (a._1 b._1, a._2 b._2))
// result1: Double = 22.0
// result2: Double = 38.0
// result: (Int, Int) = (22,38)
Ответ №2:
Вы также можете использовать fold
;
rdd.fold(0,0)((first,second) =>(first._1 second._1, first._2 second._2)))
Для пояснения функция fold;