Assegnare ID interi ai film
Facciamo la stessa cosa per i film. Poi uniamo i nuovi ID utente e i nuovi ID film in un unico dataframe.
Questo esercizio fa parte del corso
Costruire motori di raccomandazione con PySpark
Istruzioni dell'esercizio
- Usa i metodi
.select()e.distinct()per estrarre tutti iMovieunici dal dataframeratings. - Ripartiziona il dataframe
moviesin un'unica partizione usandocoalesce(). - Completa il codice parziale fornito per assegnare ID interi univoci a ciascun film. Chiama la nuova colonna
movieIde invoca il metodo.persist()sul dataframe risultante. - Esegui il join del dataframe
ratingscon il dataframeuserse poi con il dataframemovies. Chiama il risultatomovie_ratings.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# Extract the distinct movie id's
movies = ratings.select("____").distinct()
# Repartition the data to have only one partition.
movies = movies.coalesce(____)
# Create a new column of movieId integers.
movies = movies.withColumn("____", monotonically_increasing_id()).____()
# Join the ratings, users and movies dataframes
movie_ratings = ratings.join(____, "User", "left").join(____, "Movie", "left")
movie_ratings.show()