Не удается разрешить символ / в Scala

Привет, я пытаюсь найти средние оценки из списка оценок.

 val normalizedRatings = user_ratings.groupBy(a=>a._1).map{r=> (r._1,r._2.toList.map(x=>x._2))}

Вот как выглядит мой нормализованный рейтинг.

(zZRze7w4iWJrj5XR_MVg0w, Список (2.0, 4.0, 5.0)) ...

Когда я пытаюсь запустить программу, символ "/" выдает ошибку.

val userAvgRating = normalizedRatings.map(x=>(x._1.toInt, x._2.sum/x._2.length))

Я пытался с помощью toFloat

 val userAvgRating = normalizedRatings.map(x=>(x._1.toInt, x._2.sum.toFloat/x._2.length))

Я получил похожую ошибку

Error:(26, 68) could not find implicit value for parameter num: Numeric[String]
    val userAvgRating = normalizedRatings.map(x=>(x._1.toInt, x._2.sum.toFloat/x._2.length))

Любое руководство будет оценено.

1 ответ

Мне не совсем понятно, какой тип normalizedRatings есть (похоже на некоторые Iterable или же IndexedSeq коллекция (String, List[Double]), Вы можете попробовать...

val usrAvgRating = normalizedRatings map { case (id, ratings) => (id, ratings.sum / ratings.length) } 

... если вы можете предоставить точные подписи типа, если будет более полезным. Обратите внимание, что вы звоните toInt на String в какой-то момент, который, вероятно, является источником ошибки.

Другие вопросы по тегам