시작하기무료로 시작하기

MovieLens 요약 통계

이번에는 groupBy() 메서드를 조금 더 확장해 보겠습니다.

데이터프레임에 .groupBy() 메서드를 적용하면, 이후에 .sum(), .avg(), .min() 같은 집계 함수를 실행해 그룹별 결과를 낼 수 있어요. 이 연습 문제에서는 그 방법을 단계별로 살펴봅니다. minavg 함수는 pyspark.sql.functions에서 미리 임포트되어 있어요.

이 연습은 강의의 일부입니다

PySpark로 추천 엔진 만들기

강의 보기

연습 안내

  • movieId로 데이터를 그룹화하고 .count() 메서드를 사용해 각 영화가 받은 평점 수를 계산하세요. 그다음 .select() 메서드를 호출해 다음 지표를 선택합니다:
    • 데이터셋에서 어떤 영화가 받은 평점 수 중 가장 작은 값을 얻기 위해 min("count"). 첫 번째 항목은 예시로 제공되어 있어요.
    • 영화당 평균 평점 수를 얻기 위해 avg("count")
  • 동일한 작업을 이번에는 userId로 그룹화하여 minavg 평점 수를 구하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# 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: ")
____.____("____").____().____(____("____")).____()
코드 편집 및 실행