Začněte nyníZačněte zdarma

Od úlohy k dílčím úkolům

V tomto cvičení využiješ paralelní výpočty k aplikaci funkce take_mean_age(), která počítá průměrný věk sportovců v daném roce v datasetu olympijských událostí. DataFrame athlete_events je již načtený a obsahuje mimo jiné dva sloupce:

  • Year: rok, ve kterém se olympijská událost konala
  • Age: věk olympionika

Budeš používat API multiprocessor.Pool, které ti umožňuje rozdělit zátěž mezi více procesů. Funkce parallel_apply() je definovaná v ukázkovém kódu. Jako vstup přijímá aplikovanou funkci, použité seskupení a počet jader potřebných pro analýzu. Všimni si, že dekorátor @print_timing slouží k měření času každé operace.

Toto cvičení je součástí kurzu

Introduction to Data Engineering

Zobrazit kurz

Pokyny k cvičení

  • Doplň kód tak, aby se funkce take_mean_age nejprve spustila s 1 jádrem, poté se 2 a nakonec se 4 jádry.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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'), ____)
Upravit a spustit kód