Я пытаюсь работать над scala, чтобы вычислить статистику по моим данным.У меня есть массив кортежей
agency_time_map = Array(("LA", 2), ("NY", 4), ...)
Я пытаюсь использовать CombineByKey:
val combiner = (x: Double) => (1, x, x*x)
val merger = (x: (Int, Double, Double), y: (Double, Double)) => {
val (c, acc_1, acc_2) = x
val (y_1, y_2) = y
(c+1, acc_1 + y_1, acc_2 + y_2)
}
val mergeAndCombiner = (x1: (Int, Double, Double), x2: (Int, Double, Double)) => {
val (c1, acc1_1, acc1_2) = x1
val (c2, acc2_1, acc2_2) = x2
(c1+c2, acc1_1 + acc2_1, acc1_2 + acc2_2)
}
При использовании его с моими данными я получаю следующую ошибку:
agency_time_map.combineByKey(combiner,merger,mergeAndCombiner)
<console>:32: error: type mismatch;
found : ((Int, Double, Double), (Double, Double)) => (Int, Double, Double)
required: (?, Double) => ?
agency_time_map.combineByKey(combiner,merger,mergeAndCombiner)
Я пытался понять это по-нашему, но интерпретация ошибки довольно трудна.
Я подозреваю, что проблема связана с объединителем или методом слияния.
Не могли бы вы помочь?мне разобраться в проблеме?
Спасибо