CommencerCommencez gratuitement

Format correct et utilisateurs distincts

Examinez le dataframe R. Remarquez qu’il est au format classique, dit « large », avec un film différent dans chaque colonne. Notez aussi que les noms des User et des films ne sont pas au format entier. Suivez les étapes pour préparer correctement ces données pour ALS.

Cet exercice fait partie du cours

<cours>Créer des moteurs de recommandation avec PySpark</cours>
Voir le cours

Instructions de l’exercice

  • Importez le module monotonically_increasing_id depuis pyspark.sql.functions et affichez le dataframe R avec la méthode .show().
  • Utilisez la fonction to_long() pour convertir le dataframe R au format « long ». Nommez le nouveau dataframe ratings.
  • Créez un dataframe appelé users qui contient tous les utilisateurs .distinct() issus du dataframe et réduisez le nombre de partitions à une avec la méthode .coalesce(1).
  • Utilisez la méthode monotonically_increasing_id() au sein de withColumn() pour créer une nouvelle colonne dans le dataframe des utilisateurs qui contienne un entier unique pour chaque utilisateur. Nommez cette colonne userId. Veillez à appeler la méthode .persist() sur le dataframe final pour que les nouveaux identifiants entiers soient conservés.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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()
Modifier et exécuter le code