НачатьНачать бесплатно

Сводная статистика 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: ")
____.____("____").____().____(____("____")).____()
Редактировать и запускать код