Korrektes Format und eindeutige Nutzer
Sieh dir das R-DataFrame an. Es liegt im konventionellen bzw. „breiten“ Format vor, bei dem jeder Film in einer eigenen Spalte steht. Beachte außerdem, dass die Namen der User und der Filme nicht im Integer-Format vorliegen. Folge den Schritten, um diese Daten korrekt für ALS aufzubereiten.
Diese Übung ist Teil des Kurses
<Kurs>Recommendation Engines mit PySpark erstellen</Kurs>Übungsanweisungen
- Importiere das Paket
monotonically_increasing_idauspyspark.sql.functionsund lass dir das DataFrameRmit der Methode.show()anzeigen. - Verwende die Funktion
to_long(), um das DataFrameRin ein „langes“ DataFrame zu konvertieren. Nenne das neue DataFrameratings. - Erstelle ein DataFrame namens
users, das alle.distinct()Nutzer aus dem DataFrame enthält, und repartitioniere es mit der Methode.coalesce(1)auf eine Partition. - Verwende die Methode
monotonically_increasing_id()innerhalb vonwithColumn(), um im Users-DataFrame eine neue Spalte mit einer eindeutigen Ganzzahl für jeden Nutzer zu erzeugen. Nenne diese SpalteuserId. Ruf unbedingt die Methode.persist()auf dem finalen DataFrame auf, damit die neuen Integer-IDs erhalten bleiben.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# Import monotonically_increasing_id and show R
from pyspark.sql.functions import ____
R.show()
# Use the to_long() function to convert the dataframe to the "long" format.
ratings = to_long(____)
ratings.show()
# Get unique users and repartition to 1 partition
users = ratings.select("____").____().____()
# Create a new column of unique integers called "userId" in the users dataframe.
users = users.withColumn("____", monotonically_increasing_id()).____()
users.show()