Ajouter des zéros
De nombreux moteurs de recommandation utilisent des notes implicites. Dans bien des cas, ces jeux de données n’incluent pas les décomptes de comportement pour les articles qu’un utilisateur n’a jamais achetés. Dans ces situations, vous devez les ajouter et inclure des zéros. Le dataframe Z vous est fourni. Il contient des userId, des productId et num_purchases, qui correspond au nombre de fois qu’un utilisateur a acheté un produit donné.
Cet exercice fait partie du cours
<cours>Créer des moteurs de recommandation avec PySpark</cours>Instructions de l’exercice
- Examinez le dataframe
Zavec la méthode.show(). - Extrayez les
userIdetproductIddistincts deZà l’aide de la méthode.distinct(). Nommez les résultatsusersetproductsrespectivement. - Effectuez un
.crossJoin()sur les dataframesusersetproducts. Nommez le résultatcj. - Faites une jointure
"left"decjavec le dataframe d’évaluations originalZsur["userId", "productId"]. Appelez ensuite la méthode.fillna(0)sur le résultat pour remplir les valeurs manquantes par des zéros. Nommez le résultatZ_expanded.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# View the data
Z.____()
# Extract distinct userIds and productIds
users = ____.select("____").____()
products = Z.____("productId").____()
# Cross join users and products
____ = users.____(products)
# Join cj and Z
____ = cj.join(Z, ["____", "____"], "left").____(0)
# View Z_expanded
____.show()