Зведена статистика MovieLens
Давайте трохи розширимо використання методу groupBy().
Після того як ви застосували .groupBy() до датафрейму, ви можете запускати агрегатні функції, як-от .sum(), .avg(), .min(), і отримувати результати в розрізі груп. У цій вправі ви крок за кроком побачите, як це робиться. Функції min та avg уже імпортовано для вас із pyspark.sql.functions.
Ця вправа є частиною курсу
Створення рушіїв рекомендацій у PySpark
Інструкції до вправи
- Згрупуйте дані за
movieIdі за допомогою методу.count()порахуйте, скільки оцінок отримав кожен фільм. Після цього викличте метод.select(), щоб обрати такі метрики:min("count"), щоб отримати найменшу кількість оцінок для будь-якого фільму в наборі даних. Перший приклад уже наведено для орієнтиру.avg("count"), щоб отримати середню кількість оцінок на фільм
- Зробіть те саме, але цього разу згрупуйте за
userId, щоб отриматиminіavgкількості оцінок.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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: ")
____.____("____").____().____(____("____")).____()