ПочатиПочніть безкоштовно

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