CommencezCommencez gratuitement

Charger l'ensemble de données MovieLens dans des RDD

Le filtrage collaboratif est une technique pour les moteurs de recommandation où les évaluations des utilisateurs et leurs interactions avec divers produits servent à recommander de nouveaux éléments. Avec l'essor du Machine Learning et du traitement des données en parallèle, les systèmes de recommandation sont devenus très populaires ces dernières années et sont utilisés dans de nombreux domaines, dont le cinéma, la musique, les nouvelles, les livres, les articles de recherche, les requêtes de recherche et les mots-clés sociaux. Dans cet exercice en 3 parties, votre objectif est de développer un simple système de recommandation de films avec PySpark MLlib en utilisant un sous-ensemble du jeu de données MovieLens 100k.

Dans la première partie, vous allez d'abord charger les données MovieLens (ratings.csv) dans un RDD et, à partir de chaque ligne du RDD au format userId,movieId,rating,timestamp, vous devrez mapper les données MovieLens vers un objet Ratings (userID, productID, rating) après avoir retiré la colonne timestamp, puis vous fractionnerez le RDD en RDD d'entraînement et de test.

N'oubliez pas que vous avez un SparkContext sc dans votre espace de travail. La variable file_path (le chemin vers le fichier ratings.csv) et la classe ALS (c.-à-d. Rating) sont aussi déjà disponibles dans votre espace de travail.

Cette activité fait partie du cours

Principes de Big Data avec PySpark

Voir le cours

Instructions de l’exercice

  • Chargez l'ensemble de données ratings.csv dans un RDD.
  • Fractionnez le RDD en utilisant , comme délimiteur.
  • Pour chaque ligne du RDD, utilisez la classe Rating() pour créer un tuple userID, productID, rating.
  • Fractionnez aléatoirement les données en données d'entraînement et de test (0,8 et 0,2).

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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])
Modifier et exécuter le code