MovieLens: zusammenfassende Statistiken
Lass uns die Methode groupBy() noch etwas weiter nutzen.
Sobald du .groupBy() auf ein DataFrame angewendet hast, kannst du anschließend Aggregatfunktionen wie .sum(), .avg(), .min() ausführen und die Ergebnisse gruppiert zurückbekommen. Diese Übung zeigt dir Schritt für Schritt, wie das funktioniert. Die Funktionen min und avg wurden bereits aus pyspark.sql.functions für dich importiert.
Diese Übung ist Teil des Kurses
<Kurs>Recommendation Engines mit PySpark erstellen</Kurs>Übungsanweisungen
- Gruppiere die Daten nach
movieIdund verwende die Methode.count(), um zu berechnen, wie viele Bewertungen jeder Film erhalten hat. Rufe danach.select()auf und wähle folgende Kennzahlen aus:min("count"), um die kleinste Anzahl an Bewertungen eines Films im Datensatz zu erhalten. Dieses erste Beispiel ist für dich vorgegeben.avg("count"), um die durchschnittliche Anzahl an Bewertungen pro Film zu erhalten
- Mach dasselbe noch einmal, diesmal aber gruppiert nach
userId, um diemin- undavg-Anzahl an Bewertungen zu bekommen.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# Min num ratings for movies
print("Movie with the fewest ratings: ")
ratings.groupBy("movieId").count().select(min("count")).show()
# Avg num ratings per movie
print("Avg num ratings per movie: ")
____.groupBy("____").count().____(avg("____")).____()
# Min num ratings for user
print("User with the fewest ratings: ")
ratings.____("userId").____().select(____("____")).____()
# Avg num ratings per users
print("Avg num ratings per user: ")
____.____("____").____().____(____("____")).____()