Thống kê tóm tắt MovieLens
Hãy mở rộng thêm với phương thức groupBy().
Sau khi bạn áp dụng .groupBy() cho một dataframe, bạn có thể chạy các hàm tổng hợp như .sum(), .avg(), .min() và nhận kết quả theo từng nhóm. Bài tập này sẽ hướng dẫn bạn cách thực hiện. Các hàm min và avg đã được import sẵn từ pyspark.sql.functions cho bạn.
Bài tập này là một phần của khóa học
Xây dựng Recommendation Engine với PySpark
Hướng dẫn bài tập
- Nhóm dữ liệu theo
movieIdvà dùng.count()để tính số lượng đánh giá mỗi phim nhận được. Từ đó, gọi phương thức.select()để lấy các chỉ số sau:min("count")để lấy số lượng đánh giá nhỏ nhất của bất kỳ phim nào trong tập dữ liệu. Mục đầu tiên này đã được cung cấp làm ví dụ.avg("count")để lấy số lượng đánh giá trung bình trên mỗi phim
- Làm tương tự, nhưng lần này nhóm theo
userIdđể lấy số lượng đánh giáminvàavg.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Min num ratings for movies
print("Movie with the fewest ratings: ")
ratings.groupBy("movieId").count().select(min("count")).show()
# Avg num ratings per movie
print("Avg num ratings per movie: ")
____.groupBy("____").count().____(avg("____")).____()
# Min num ratings for user
print("User with the fewest ratings: ")
ratings.____("userId").____().select(____("____")).____()
# Avg num ratings per users
print("Avg num ratings per user: ")
____.____("____").____().____(____("____")).____()