Aan de slagBegin gratis

Gegroepeerde samenvattingsstatistieken

In deze oefening combineren we de methodes .groupBy() en .filter() die je eerder hebt gebruikt om het min()- en avg()-aantal gebruikers te berekenen dat elk liedje heeft beoordeeld, en het min()- en avg()-aantal liedjes dat elke gebruiker heeft beoordeeld.

Omdat onze data nu 0'en bevat voor items die nog niet zijn geconsumeerd, moeten we die eruit .filter()en wanneer we dit soort gegroepeerde samenvattingsstatistieken doen. De msd-gegevensset is voor je beschikbaar. De functies col(), min() en avg() uit pyspark.sql.functions zijn al voor je geïmporteerd.

Deze oefening maakt deel uit van de cursus

Aanbevelingssystemen bouwen met PySpark

Bekijk cursus

Oefeninstructies

  • Als voorbeeld worden de methodes .filter(), .groupBy() en .count() toegepast op de msd-gegevensset, samen met .select() en min(), om het kleinste aantal beoordelingen te retourneren dat een liedje in de gegevensset heeft ontvangen. Gebruik dit als voorbeeld om het avg()-aantal impliciete beoordelingen te berekenen dat de liedjes in msd hebben ontvangen.
  • Gebruik hetzelfde voorbeeld om het min()- en avg()-aantal impliciete beoordelingen te vinden dat userIds hebben gegeven in de msd-gegevensset.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# 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).____("____").____().____(____("____")).____()
Code bewerken en uitvoeren