Von der Aufgabe zu den Teilaufgaben
Für diese Übung wirst du die Parallelverarbeitung nutzen, um die Funktion take_mean_age()
anzuwenden, die das Durchschnittsalter der Athleten in einem bestimmten Jahr im Datensatz zu den Olympischen Spiele berechnet. Der DataFrame athlete_events
wurde für dich geladen und hat unter anderem zwei Spalten:
Year
: das Jahr, in dem die Olympischen Spiele stattfanden.Age
: das Alter des Olympioniken
Du wirst die multiprocessor.Pool
nutzen, mit der du deine Arbeitslast auf mehrere Prozesse verteilen kannst. Die Funktion parallel_apply()
ist im Beispielcode definiert. Es braucht als Input die Funktion, die angewendet wird, die verwendete Gruppierung und die Anzahl der Kerne, die für die Analyse gebraucht werden. Beachte, dass der Dekorator @print_timing
verwendet wird, um die Zeit für jede Operation zu messen.
Diese Übung ist Teil des Kurses
Einführung in das Data Engineering
Anleitung zur Übung
- Vervollständige den Code, sodass du zuerst
take_mean_age
mit dem Kern1
, dann2
und schließlich4
anwendest.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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'), ____)