LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Vervollständige den Code, sodass du zuerst take_mean_age mit dem Kern 1, dann 2 und schließlich 4 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'), ____)
Code bearbeiten und ausführen