Gruplandırılmış özet istatistikler
Bu egzersizde, daha önce kullandığın .groupBy() ve .filter() metodlarını birleştirerek, her bir şarkıyı oylayan kullanıcı sayısının min() ve avg() değerlerini, ayrıca her bir kullanıcının oyladığı şarkı sayısının min() ve avg() değerlerini hesaplayacağız.
Artık verilerimiz tüketilmemiş öğeler için 0 içerdiğinden, bu tür gruplandırılmış özet istatistikleri yaparken bunları .filter() ile elememiz gerekecek. msd veri kümesi senin için sağlandı. pyspark.sql.functions içinden col(), min() ve avg() fonksiyonları içe aktarıldı.
Bu egzersiz, kursun bir parçasıdır
PySpark ile Öneri Motorları Oluşturma
Egzersiz talimatları
- Örnek olarak,
.filter(),.groupBy()ve.count()metodlarımsdveri kümesine uygulanıp.select()vemin()ile birlikte kullanılarak veri kümesindeki herhangi bir şarkının aldığı en küçük puan sayısı döndürülür. Bunu model olarak kullanarak,msdiçindeki şarkıların aldığı örtük puanlarınavg()değerini hesapla. - Aynı modeli kullanarak,
msdveri kümesindeuserIdlerin verdiği örtük puanlarınmin()veavg()değerlerini bul.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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).____("____").____().____(____("____")).____()