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: ")
____.____("____").____().____(____("____")).____()