Sammanfattande statistik för MovieLens
Nu tar vi .groupBy()-metoden lite längre.
När du har tillämpat .groupBy()-metoden på en dataframe kan du sedan köra aggregatfunktioner som .sum(), .avg() och .min() – och få resultaten grupperade. Den här övningen visar hur det går till. Funktionerna min och avg har redan importerats från pyspark.sql.functions åt dig.
Den här övningen är en del av kursen
Bygg rekommendationsmotorer med PySpark
Övningsinstruktioner
- Gruppera data efter
movieIdoch använd.count()-metoden för att beräkna hur många betyg varje film har fått. Anropa sedan.select()-metoden och välj följande mätvärden:min("count")för att hämta det lägsta antalet betyg som någon film i datamängden har fått. Det här första steget är redan färdigt som exempel.avg("count")för att beräkna det genomsnittliga antalet betyg per film
- Gör sedan samma sak, men den här gången grupperar du efter
userIdför att hämtaminochavgför antalet betyg.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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: ")
____.____("____").____().____(____("____")).____()