Сводная статистика 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: ")
____.____("____").____().____(____("____")).____()