Format correct et utilisateurs distincts
Examinez le tableau de données R. Remarquez qu'il est au format classique dit « large », avec un film différent dans chaque colonne. Notez aussi que les noms de User et des films ne sont pas au format entier. Suivez les étapes pour bien préparer ces données pour ALS.
Cette activité fait partie du cours
Créer des moteurs de recommandation avec PySpark
Instructions de l’exercice
- Importez le module
monotonically_increasing_iddepuispyspark.sql.functionset affichez le tableauRà l'aide de la méthode.show(). - Utilisez la fonction
to_long()pour convertir le tableauRen un tableau de type « long ». Nommez le nouveau tableauratings. - Créez un tableau appelé
usersqui contient tous les utilisateurs.distinct()du tableau de données et répartissez-le en une seule partition avec la méthode.coalesce(1). - Utilisez la méthode
monotonically_increasing_id()à l'intérieur dewithColumn()pour créer une nouvelle colonne dans le tableauusersqui contient un entier unique pour chaque utilisateur. Nommez cette colonneuserId. Assurez-vous d'appeler la méthode.persist()sur le tableau 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()