CommencezCommencez gratuitement

Statistiques sommaires groupées

Dans cet exercice, nous allons combiner les méthodes .groupBy() et .filter() que vous avez déjà utilisées pour calculer le nombre min() et avg() d'utilisateurs ayant évalué chaque chanson, ainsi que le nombre min() et avg() de chansons que chaque utilisateur a évaluées.

Comme nos données incluent maintenant des 0 pour les éléments encore non consommés, nous devons les exclure avec .filter() lorsque nous calculons des statistiques sommaires par groupe. Le jeu de données msd est fourni. Les fonctions col(), min() et avg() de pyspark.sql.functions ont été importées pour vous.

Cette activité fait partie du cours

Créer des moteurs de recommandation avec PySpark

Voir le cours

Instructions de l’exercice

  • À titre d'exemple, les méthodes .filter(), .groupBy() et .count() sont appliquées au jeu de données msd avec .select() et min() pour retourner le plus petit nombre d'évaluations reçues par une chanson du jeu de données. Servez-vous-en comme modèle pour calculer le nombre avg() d'évaluations implicites reçues par les chansons dans msd.
  • En suivant le même modèle, trouvez les nombres min() et avg() d'évaluations implicites que les userId ont fournies dans le jeu de données msd.

Exercice interactif pratique

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

# Min num implicit ratings for a song
print("Minimum implicit ratings for a song: ")
msd.filter(col("num_plays") > 0).groupBy("songId").count().select(min("count")).show()

# Avg num implicit ratings per songs
print("Average implicit ratings per song: ")
____.filter(____("____") > 0).groupBy("____").count().____(avg("____")).____()

# Min num implicit ratings from a user
print("Minimum implicit ratings from a user: ")
msd.____(____("num_plays") > ____).____("userId").____().select(____("____")).____()

# Avg num implicit ratings for users
print("Average implicit ratings per user: ")
____.filter(col("num_plays") > 0).____("____").____().____(____("____")).____()
Modifier et exécuter le code