Aan de slagGa gratis aan de slag

MovieLens-gegevensset laden in RDD's

Collaborative filtering is een techniek voor aanbevelingssystemen waarbij beoordelingen en interacties van gebruikers met verschillende producten worden gebruikt om nieuwe producten aan te bevelen. Met de opkomst van Machine Learning en het parallel verwerken van data zijn aanbevelingssystemen de afgelopen jaren enorm populair geworden. Ze worden ingezet in uiteenlopende domeinen zoals films, muziek, nieuws, boeken, onderzoeksartikelen, zoekopdrachten en social tags. In deze oefening in 3 delen ga je een eenvoudig aanbevelingssysteem voor films bouwen met PySpark MLlib, met een subset van de MovieLens 100k dataset.

In het eerste deel laad je eerst de MovieLens-data (ratings.csv) in een RDD. Elke regel in de RDD heeft het formaat userId,movieId,rating,timestamp. Je moet de MovieLens-data mappen naar een Ratings-object (userID, productID, rating) door de timestamp-kolom te verwijderen en tot slot de RDD splitsen in trainings- en testrdds.

Onthoud dat je een SparkContext sc beschikbaar hebt in je werkruimte. Ook de variabele file_path (het pad naar het bestand ratings.csv) en de ALS-klasse (dus Rating) zijn al beschikbaar in je werkruimte.

Deze oefening maakt deel uit van de cursus

Big Data Fundamentals met PySpark

Cursus bekijken

Oefeninstructies

  • Laad de gegevensset ratings.csv in een RDD.
  • Split de RDD met , als scheidingsteken.
  • Gebruik voor elke regel in de RDD de klasse Rating() om een tuple userID, productID, rating te maken.
  • Split de data willekeurig in trainingsdata en testdata (0,8 en 0,2).

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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])
Code bewerken en uitvoeren