EmpezarEmpieza gratis

Ver el esquema

Como ya sabes de capítulos anteriores, la implementación de ALS en Spark requiere que los movieId y userId se proporcionen como tipos de dato enteros. Muchos conjuntos de datos deben prepararse en consecuencia para que funcionen correctamente con Spark. Un problema común es que Spark interpreta números como cadenas y viceversa.

Aquí usarás el método .cast() para tratar este tipo de problemas. Vamos a revisar el esquema del conjunto de datos para asegurarnos de que tiene el formato correcto.

Este ejercicio forma parte del curso

Creación de motores de recomendación con PySpark

Ver curso

Instrucciones del ejercicio

  • Usa .printSchema() para comprobar si el conjunto de datos de ratings contiene los tipos de dato adecuados para que ALS funcione correctamente. ¿Los userId y movieId se proporcionan como tipos enteros? ¿Los rating están en formato numérico?
  • Asegúrate de que las columnas del dataframe ratings tengan los tipos de dato correctos. Llama al método cast() en cada columna y especifica que las columnas userID y movieId sean de tipo "integer" y que la columna rating sea de tipo "double". (No necesitamos la columna timestamp, así que podemos omitirla.)
  • Vuelve a llamar a .printSchema() sobre ratings para confirmar que ahora los tipos de dato son correctos.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# Use .printSchema() to see the datatypes of the ratings dataset
ratings.____()

# Tell Spark to convert the columns to the proper data types
ratings = ratings.select(ratings.userId.cast("____"), ratings.movieId.cast("____"), ratings.rating.cast("____"))

# Call .printSchema() again to confirm the columns are now in the correct format
ratings.____()
Editar y ejecutar código