Correct formaat en unieke gebruikers
Bekijk de R-dataframe. Merk op dat deze in het conventionele of ‘brede’ formaat staat, met een andere film in elke kolom. Let ook op dat de namen van User en films niet in een geheelgetalformaat staan. Volg de stappen om deze data goed voor te bereiden voor ALS.
Deze oefening maakt deel uit van de cursus
Aanbevelingssystemen bouwen met PySpark
Oefeninstructies
- Importeer het pakket
monotonically_increasing_iduitpyspark.sql.functionsen bekijk deR-dataframe met de methode.show(). - Gebruik de functie
to_long()om deR-dataframe om te zetten naar een ‘lange’ dataframe. Noem de nieuwe dataframeratings. - Maak een dataframe
usersmet alle.distinct()gebruikers uit de dataframe en repartitioneer de dataframe naar één partitie met de methode.coalesce(1). - Gebruik de methode
monotonically_increasing_id()binnenwithColumn()om een nieuwe kolom in de users-dataframe te maken met een unieke integer voor elke gebruiker. Noem deze kolomuserId. Zorg dat je de.persist()-methode aanroept op de uiteindelijke dataframe zodat de nieuwe gehele ID’s behouden blijven.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# 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()