Läs in MovieLens-datamängden till RDD:er
Kollaborativ filtrering är en teknik för rekommendationssystem där användares betyg och interaktioner med olika produkter används för att rekommendera nya. I takt med att maskininlärning och parallelliserad databearbetning blivit allt vanligare har rekommendationssystem fått stor spridning inom en rad områden, till exempel film, musik, nyheter, böcker, forskningsartiklar, sökfrågor och sociala taggar. I den här övningen i tre delar är målet att bygga ett enkelt filmrekommendationssystem med PySpark MLlib, baserat på en delmängd av MovieLens 100k-datamängden.
I den första delen läser du in MovieLens-data (ratings.csv) till en RDD. Varje rad i RDD:n är formaterad som userId,movieId,rating,timestamp. Du ska mappa datan till ett Ratings-objekt (userID, productID, rating) genom att ta bort kolumnen timestamp, och slutligen dela upp RDD:n i en tränings-RDD och en test-RDD.
Kom ihåg att SparkContext sc finns tillgänglig i din arbetsyta. Variabeln file_path (sökvägen till filen ratings.csv) och ALS-klassen (dvs. Rating) är också redan tillgängliga.
Den här övningen är en del av kursen
Grunderna i Big Data med PySpark
Övningsinstruktioner
- Läs in datamängden
ratings.csvtill en RDD. - Dela upp RDD:n med
,som avgränsare. - Använd klassen
Rating()för att skapa en tupel avuserID, productID, ratingför varje rad i RDD:n. - Dela slumpmässigt upp datan i träningsdata och testdata (0,8 respektive 0,2).
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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])