Mulai sekarangMulai gratis

Statistik ringkasan berkelompok

Dalam latihan ini, kita akan menggabungkan metode .groupBy() dan .filter() yang telah Anda gunakan sebelumnya untuk menghitung jumlah min() dan avg() pengguna yang memberi rating pada setiap lagu, serta jumlah min() dan avg() lagu yang telah diberi rating oleh setiap pengguna.

Karena data kita sekarang menyertakan nilai 0 untuk item yang belum dikonsumsi, kita perlu melakukan .filter() untuk mengeluarkannya saat membuat statistik ringkasan berkelompok seperti ini. Himpunan data msd telah disediakan untuk Anda. Fungsi col(), min(), dan avg() dari pyspark.sql.functions telah diimpor untuk Anda.

Latihan ini merupakan bagian dari kursus

Membangun Recommendation Engine dengan PySpark

Lihat Kursus

Instruksi latihan

  • Sebagai contoh, metode .filter(), .groupBy() dan .count() diterapkan pada himpunan data msd bersama .select() dan min() untuk mengembalikan jumlah rating terkecil yang diterima lagu mana pun dalam himpunan data. Gunakan ini sebagai acuan untuk menghitung jumlah avg() rating implisit yang diterima lagu-lagu dalam msd.
  • Dengan acuan yang sama, temukan jumlah min() dan avg() rating implisit yang telah diberikan userId dalam himpunan data msd.

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

# 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).____("____").____().____(____("____")).____()
Edit dan Jalankan Kode