ÎncepețiÎncepe gratuit

De la sarcină la subsarcini

În acest exercițiu, vei folosi calculul paralel pentru a aplica funcția take_mean_age(), care calculează vârsta medie a atletului într-un anumit an din setul de date cu evenimente olimpice. DataFrame-ul athlete_events a fost deja încărcat și conține, printre altele, două coloane:

  • Year: anul în care a avut loc evenimentul olimpic
  • Age: vârsta olimpicianului

Vei folosi API-ul multiprocessor.Pool, care îți permite să distribui volumul de lucru pe mai multe procese. Funcția parallel_apply() este definită în codul exemplu. Aceasta primește ca intrare funcția care se aplică, gruparea utilizată și numărul de nuclee necesare pentru analiză. Reține că decoratorul @print_timing este folosit pentru a măsura durata fiecărei operații.

Acest exercițiu face parte din cursul

Introducere în Data Engineering

Vezi cursul

Instrucțiuni pentru exercițiu

  • Completează codul astfel încât să aplici take_mean_age mai întâi cu 1 nucleu, apoi cu 2 și în final cu 4 nuclee.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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'), ____)
Editează și rulează codul