В коде ниже я пытаюсь объединить значения:
val rdd: org.apache.spark.rdd.RDD[((String), Double)] =
sc.parallelize(List(
(("a"), 1.0),
(("a"), 3.0),
(("a"), 2.0)
))
val reduceByKey = rdd.reduceByKey((a , b) => String.valueOf(a) + String.valueOf(b))
reduceByValue
должен содержать (a, 1,3,2), но получить ошибку времени компиляции:
Multiple markers at this line - type mismatch; found : String required: Double - type mismatch; found : String
required: Double
Что определяет тип функции сокращения? Тип не может быть преобразован?
Я мог бы использовать groupByKey
для достижения того же результата, но просто хочу понять reduceByKey
.