映画に整数IDを割り当てる
今度は映画に対して同じ処理を行いましょう。次に、新しいユーザーIDと映画IDを1つのデータフレームに結合します。
この演習はコースの一部です
PySpark で作る Recommendation Engines
演習の手順
.select()と.distinct()メソッドを使って、ratingsデータフレームから一意なすべてのMovieを抽出します。coalesce()を使って、moviesデータフレームを1パーティションに再パーティションします。- それぞれの映画に一意の整数IDを割り当てるために、与えられた部分コードを完成させます。新しい列名は
movieIdとし、結果のデータフレームに対して.persist()メソッドを呼び出します。 ratingsデータフレームをusersデータフレームに結合し、その後にmoviesデータフレームへ結合します。結果をmovie_ratingsと名付けます。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# 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()