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

Від завдання до підзавдань

У цій вправі ви скористаєтеся паралельними обчисленнями, щоб застосувати функцію take_mean_age(), яка обчислює середній вік атлетів у заданому році в наборі даних про олімпійські події. Для вас завантажено датафрейм athlete_events, який, зокрема, містить два стовпці:

  • Year: рік проведення Олімпійських ігор
  • Age: вік олімпійця

Ви використаєте API multiprocessor.Pool, який дає змогу розподіляти навантаження між кількома процесами. Функцію parallel_apply() визначено в зразку коду. Вона приймає на вхід функцію, яку потрібно застосувати, групування та кількість ядер, необхідних для аналізу. Зверніть увагу, що декоратор @print_timing використовується для вимірювання часу кожної операції.

Ця вправа є частиною курсу

Вступ до Data Engineering

Переглянути курс

Інструкції до вправи

  • Доповніть код так, щоб ви застосували 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'), ____)
Редагувати та запускати код