Statistiche riassuntive di MovieLens
Approfondiamo un po' il metodo groupBy().
Dopo aver applicato il metodo .groupBy() a un dataframe, puoi eseguire funzioni di aggregazione come .sum(), .avg(), .min() e ottenere i risultati raggruppati. In questo esercizio vedrai come fare. Le funzioni min e avg sono già state importate da pyspark.sql.functions per te.
Questo esercizio fa parte del corso
Costruire motori di raccomandazione con PySpark
Istruzioni dell'esercizio
- Raggruppa i dati per
movieIde usa il metodo.count()per calcolare quante valutazioni ha ricevuto ciascun film. Da lì, richiama il metodo.select()per selezionare le seguenti metriche:min("count")per ottenere il numero minimo di valutazioni ricevute da qualsiasi film nell'insieme di dati. Il primo è già fornito come esempio.avg("count")per ottenere il numero medio di valutazioni per film
- Ripeti la stessa cosa, ma questa volta raggruppa per
userIdper ottenere il numeromineavgdi valutazioni.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# 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: ")
____.____("____").____().____(____("____")).____()