ComenzarEmpieza gratis

Carga del conjunto de datos MovieLens en los RDD

El filtrado colaborativo es una técnica de los sistemas de recomendación en la que se utilizan valoraciones e interacciones de usuarios con diversos productos para recomendar nuevos productos. Con la llegada del machine learning y el procesamiento paralelizado de datos en los últimos años, los sistemas de recomendación se han hecho muy populares, y se utilizan en diversas áreas, como películas, música, noticias, libros, artículos de investigación, consultas de búsqueda y etiquetas de redes sociales. En este ejercicio de 3 partes, tu objetivo es desarrollar un sistema de recomendación de películas sencillo utilizando PySpark MLlib con un subconjunto del conjunto de datos MovieLens 100k.

En la primera parte, cargarás primero los datos de MovieLens (ratings.csv) en el RDD y de cada línea del RDD con formato userId,movieId,rating,timestamp tendrás que asignar los datos de MovieLens al objeto Ratings (userID, productID, rating) tras eliminar la columna de marca de tiempo y, por último, dividirás el RDD en un RDD de entrenamiento y otro de prueba.

Recuerda que tienes sc de SparkContext disponible en tu espacio de trabajo. La variable file_path (que es la ruta del archivo ratings.csv) y la clase ALS (es decir, Rating) están ya disponibles también en tu espacio de trabajo.

Este ejercicio forma parte del curso

Fundamentos de big data con PySpark

Ver curso

Instrucciones de ejercicio

  • Carga el conjunto de datos ratings.csv en un RDD.
  • Divide el RDD utilizando , como delimitador.
  • Para cada línea del RDD, utiliza la clase Rating() para crear una tupla de userID, productID, rating.
  • Divide aleatoriamente los datos en datos de entrenamiento y datos de prueba (0,8 y 0,2).

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

# Load the data into RDD
data = sc.____(file_path)

# Split the RDD 
ratings = data.____(lambda l: l.split('____'))

# Transform the ratings RDD 
ratings_final = ratings.____(lambda line: Rating(int(line[0]), int(____), float(____)))

# Split the data into training and test
training_data, test_data = ratings_final.____([0.8, 0.2])
Editar y ejecutar código