시작하기무료로 시작하기

작업을 더 작은 하위 작업으로

이 연습에서는 병렬 컴퓨팅을 사용해 올림픽 이벤트 데이터셋에서 특정 연도의 선수 평균 나이를 계산하는 함수 take_mean_age()를 적용해 볼 거예요. 데이터프레임 athlete_events는 이미 로드되어 있으며, 그중 특히 다음 두 열을 포함해요.

  • Year: 올림픽이 개최된 연도
  • Age: 선수의 나이

여러 프로세스에 작업을 분산할 수 있는 multiprocessor.Pool API를 사용할 거예요. parallel_apply() 함수는 샘플 코드에 정의되어 있으며, 적용할 함수, 그룹화 기준, 분석에 사용할 코어 수를 입력으로 받아요. 각 연산의 시간을 측정하기 위해 @print_timing 데코레이터가 사용된다는 점에 유의하세요.

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

데이터 엔지니어링 입문

강의 보기

연습 안내

  • 코드를 완성해 take_mean_age를 먼저 코어 1개로, 그다음 2개, 마지막으로 4개 코어로 적용하세요.

실습형 인터랙티브 연습

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

# Function to apply a function over multiple cores
@print_timing
def parallel_apply(apply_func, groups, nb_cores):
    with Pool(nb_cores) as p:
        results = p.map(apply_func, groups)
    return pd.concat(results)

# Parallel apply using 1 core
parallel_apply(take_mean_age, athlete_events.groupby('Year'), ____)

# Parallel apply using 2 cores
parallel_apply(take_mean_age, athlete_events.groupby('Year'), ____)

# Parallel apply using 4 cores
parallel_apply(take_mean_age, athlete_events.groupby('Year'), ____)
코드 편집 및 실행