EmpezarEmpieza gratis

Formato correcto y usuarios distintos

Echa un vistazo al dataframe R. Observa que está en formato convencional o «ancho», con una película distinta en cada columna. Fíjate también en que los nombres de User y de las películas no están en formato entero. Sigue los pasos para preparar correctamente estos datos para ALS.

Este ejercicio forma parte del curso

Creación de motores de recomendación con PySpark

Ver curso

Instrucciones del ejercicio

  • Importa el paquete monotonically_increasing_id desde pyspark.sql.functions y visualiza el dataframe R usando el método .show().
  • Usa la función to_long() para convertir el dataframe R a un dataframe en formato «largo». Llama ratings al nuevo dataframe.
  • Crea un dataframe llamado users que contenga todos los usuarios .distinct() del dataframe y vuelve a particionarlo en una sola partición usando el método .coalesce(1).
  • Usa el método monotonically_increasing_id() dentro de withColumn() para crear una columna nueva en el dataframe de usuarios que contenga un entero único para cada usuario. Llama a esta columna userId. Asegúrate de llamar al método .persist() en el dataframe final para que los nuevos ID enteros persistan.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# Import monotonically_increasing_id and show R
from pyspark.sql.functions import ____
R.show()

# Use the to_long() function to convert the dataframe to the "long" format.
ratings = to_long(____)
ratings.show()

# Get unique users and repartition to 1 partition
users = ratings.select("____").____().____()

# Create a new column of unique integers called "userId" in the users dataframe.
users = users.withColumn("____", monotonically_increasing_id()).____()
users.show()
Editar y ejecutar código