Încărcarea setului de date MovieLens în RDD-uri
Filtrarea colaborativă este o tehnică utilizată în sistemele de recomandare, în care evaluările și interacțiunile utilizatorilor cu diverse produse sunt folosite pentru a sugera produse noi. Odată cu avântul învățării automate și al procesării paralele a datelor, sistemele de recomandare au căpătat o popularitate tot mai mare în ultimii ani și sunt folosite în numeroase domenii: filme, muzică, știri, cărți, articole de cercetare, interogări de căutare și etichete sociale. În acest exercițiu în 3 părți, scopul tău este să dezvolți un sistem simplu de recomandare de filme folosind PySpark MLlib, pe baza unui subset al setului de date MovieLens 100k.
În prima parte, vei încărca datele MovieLens (ratings.csv) într-un RDD. Fiecare linie din RDD are formatul userId,movieId,rating,timestamp – va trebui să mapezi datele MovieLens la un obiect de tip Ratings (userID, productID, rating), eliminând coloana timestamp, și în final să împarți RDD-ul în RDD de antrenament și RDD de testare.
Reține că ai un SparkContext sc disponibil în spațiul de lucru. De asemenea, variabila file_path (calea către fișierul ratings.csv) și clasa ALS (adică Rating) sunt deja disponibile în spațiul de lucru.
Acest exercițiu face parte din cursul
Fundamentele Big Data cu PySpark
Instrucțiuni pentru exercițiu
- Încarcă setul de date
ratings.csvîntr-un RDD. - Împarte RDD-ul folosind
,ca delimitator. - Pentru fiecare linie din RDD, folosește clasa
Rating()pentru a crea un tuplu deuserID, productID, rating. - Împarte aleatoriu datele în date de antrenament și date de testare (0,8 și 0,2).
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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])