开始使用免费开始使用

从任务到子任务

在本练习中,您将使用并行计算来应用函数 take_mean_age(),该函数用于计算奥运会赛事数据集中给定年份的运动员平均年龄。已为您加载 DataFrame athlete_events,其中包含(除其他外)两列:

  • Year:奥运赛事举办的年份
  • Age:参赛运动员的年龄

您将使用 multiprocessor.Pool API,它可以让您把工作负载分配到多个进程。示例代码中已定义函数 parallel_apply()。它的输入包括要应用的函数、用于分组的键,以及分析所需的内核数量。请注意,装饰器 @print_timing 用于记录每个操作的耗时。

本练习是课程的一部分

Data Engineering 入门

查看课程

练习说明

  • 补全代码,先用 1 个内核运行 take_mean_age,然后依次使用 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'), ____)
编辑并运行代码