Začněte nyníZačněte zdarma

Skupinová souhrnná statistika

V tomto cvičení zkombinuješ metody .groupBy() a .filter(), které už znáš, a vypočítáš pomocí min() a avg() minimální a průměrný počet uživatelů, kteří ohodnotili každou skladbu, a minimální a průměrný počet skladeb, které každý uživatel ohodnotil.

Protože naše data teď obsahují nuly pro položky, které ještě nebyly konzumovány, je potřeba je při skupinové souhrnné statistice odfiltrovat pomocí .filter(). Dataset msd máš k dispozici. Funkce col(), min() a avg() z pyspark.sql.functions jsou již naimportované.

Toto cvičení je součástí kurzu

Tvorba doporučovacích systémů s PySparkem

Zobrazit kurz

Pokyny k cvičení

  • Jako vzor ti poslouží příklad, ve kterém jsou na dataset msd aplikovány metody .filter(), .groupBy() a .count() spolu s .select() a min(), které vrátí nejmenší počet hodnocení, jež v datasetu získala jakákoli skladba. Podle tohoto vzoru vypočítej průměrný (avg()) počet implicitních hodnocení skladeb v datasetu msd.
  • Podle stejného vzoru zjisti minimální (min()) a průměrný (avg()) počet implicitních hodnocení, která v datasetu msd poskytla jednotlivá userId.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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).____("____").____().____(____("____")).____()
Upravit a spustit kód