Zacznij terazZacznij za darmo

Grupowe statystyki opisowe

W tym ćwiczeniu połączysz metody .groupBy() i .filter(), których wcześniej używasz, aby obliczyć min() i avg() liczby użytkowników, którzy ocenili każdą piosenkę, oraz min() i avg() liczby piosenek ocenionych przez każdego użytkownika.

Ponieważ nasze dane zawierają teraz wartości 0 dla elementów, które nie zostały jeszcze skonsumowane, trzeba je odfiltrować metodą .filter() przed wykonaniem grupowych statystyk opisowych. Zbiór danych msd jest już dla ciebie dostępny. Funkcje col(), min() i avg() z pyspark.sql.functions zostały zaimportowane.

To ćwiczenie jest częścią kursu

Budowanie silników rekomendacji w PySpark

Zobacz kurs

Instrukcje do ćwiczenia

  • Jako przykład: metody .filter(), .groupBy() i .count() są zastosowane do zbioru danych msd wraz z .select() i min(), aby zwrócić najmniejszą liczbę ocen, jaką otrzymała jakakolwiek piosenka w zbiorze danych. Użyj tego jako wzorca i oblicz avg() liczbę niejawnych ocen piosenek w zbiorze msd.
  • Korzystając z tego samego wzorca, wyznacz min() i avg() liczbę niejawnych ocen wystawionych przez userId w zbiorze danych msd.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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).____("____").____().____(____("____")).____()
Edytuj i uruchom kod