EmpezarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Agrupa los datos por movieId y 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 userId para obtener el número min y avg de 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: ")
____.____("____").____().____(____("____")).____()
Editar y ejecutar código