CommencerCommencer gratuitement

Chargement de l’ensemble de données Movie Lens dans des RDD

Le filtrage collaboratif est une technique destinée aux systèmes de recommandations, dans laquelle les évaluations des utilisateurs et leurs interactions avec divers produits sont utilisées pour en recommander de nouveaux. Avec l'avènement du machine learning et du traitement parallélisé des données, les systèmes de recommandation sont devenus très populaires ces dernières années et sont utilisés dans divers domaines, notamment les films, la musique, les actualités, les livres, les articles de recherche, les requêtes de recherche et les tags des médias sociaux. Dans cet exercice en 3 parties, votre objectif est de développer un système simple de recommandation de films à l'aide de PySpark MLlib en utilisant le sous-ensemble 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 aurez besoin de mapper les données MovieLens à un objet Ratings (userID, productID, rating) après avoir supprimé la colonne timestamp. Enfin, vous allez diviser le RDD en RDD d'entraînement et de test.

Rappelez-vous qu’un SparkContext sc est déjà disponible dans votre espace de travail. La variable file_path (qui est le chemin d'accès au fichier ratings.csv ) et la classe ALS (c'est-à-dire Rating) sont également déjà disponibles dans votre espace de travail.

Cet exercice fait partie du cours

Principes fondamentaux des mégadonnées avec PySpark

Afficher le cours

Instructions

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

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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