Estadísticas resumidas de MovieLens
Vamos a llevar el método groupBy() un poco más allá.
Una vez que aplicas el método .groupBy() a un dataframe, puedes ejecutar funciones de agregación como .sum(), .avg(), .min() y obtener los resultados agrupados. En este ejercicio verás paso a paso cómo hacerlo. Las funciones min y avg ya se han importado de pyspark.sql.functions para ti.
Este ejercicio forma parte del curso
Creación de motores de recomendación con PySpark
Instrucciones del ejercicio
- Agrupa los datos por
movieIdy usa el método.count()para calcular cuántas valoraciones ha recibido cada película. A partir de ahí, llama al método.select()para obtener las siguientes métricas:min("count")para conseguir el número más pequeño de valoraciones que tiene cualquier película del conjunto de datos. Este primero te lo damos como ejemplo.avg("count")para obtener la media de valoraciones por película.
- Haz lo mismo, pero esta vez agrupando por
userIdpara obtener el númerominyavgde valoraciones.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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: ")
____.____("____").____().____(____("____")).____()