2017-03-26 2 views
-1

Hallo Ich versuche, durchschnittliche Bewertungen einer Liste von Bewertungen zu finden.Symbol kann nicht aufgelöst werden/in scala

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

So sieht meine normalizedRatings aus.

(zZRze7w4iWJrj5XR_MVg0w, List (2.0, 4.0, 5.0)) ...

Wenn ich versuche, das Programm auszuführen, '/' Symbol wirft einen Fehler.

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

Ich versuchte toFloat mit

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

ich

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)) 

Jede Führung einen ähnlichen Fehler bekam geschätzt wird.

+0

Was ist die Art Signatur von 'normalizedRatings' – jwvh

+0

Tupel wie folgt aus:..? (zZRze7w4iWJrj5XR_MVg0w, Liste (2.0, 4.0, 5.0)) ... im Grunde ID, die Zeichenfolge und eine Liste von Bewertungen ist – codingyo

+0

Bitte posten Sie die genaue Signatur. Eine Wortbeschreibung wird nicht viel helfen. – jwvh

Antwort

1

Es ist mir nicht klar, was genau die Art von normalizedRatings ist (scheint, wie einige Iterable oder IndexedSeq Sammlung von (String, List[Double]). Sie könnten versuchen, ...

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

... wenn Sie die genaue liefern geben Sie Signaturen, wenn wäre hilfreich Hinweis, dass Sie toInt fordern auf einem String an einem gewissen Punkt, die wahrscheinlich die Ursache des Fehlers ist

Verwandte Themen