Aan de slagBegin gratis

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

Bekijk cursus

Oefeninstructies

  • Importeer het pakket monotonically_increasing_id uit pyspark.sql.functions en bekijk de R-dataframe met de methode .show().
  • Gebruik de functie to_long() om de R-dataframe om te zetten naar een ‘lange’ dataframe. Noem de nieuwe dataframe ratings.
  • Maak een dataframe users met alle .distinct() gebruikers uit de dataframe en repartitioneer de dataframe naar één partitie met de methode .coalesce(1).
  • Gebruik de methode monotonically_increasing_id() binnen withColumn() om een nieuwe kolom in de users-dataframe te maken met een unieke integer voor elke gebruiker. Noem deze kolom userId. 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()
Code bewerken en uitvoeren