เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

จากงานสู่งานย่อย

ในแบบฝึกหัดนี้ จะใช้การประมวลผลแบบขนานเพื่อเรียกใช้ฟังก์ชัน take_mean_age() ซึ่งคำนวณอายุเฉลี่ยของนักกีฬาในแต่ละปีจากชุดข้อมูลการแข่งขันโอลิมปิก DataFrame athlete_events ถูกโหลดไว้ให้แล้ว และมีคอลัมน์ที่เกี่ยวข้อง ได้แก่:

  • Year: ปีที่การแข่งขันโอลิมปิกจัดขึ้น
  • Age: อายุของนักกีฬาโอลิมปิก

จะใช้ API multiprocessor.Pool ซึ่งช่วยให้กระจายงานไปยังหลายโปรเซสได้ ฟังก์ชัน parallel_apply() ถูกกำหนดไว้ในโค้ดตัวอย่างแล้ว โดยรับอินพุตเป็นฟังก์ชันที่ต้องการนำไปใช้ การจัดกลุ่มข้อมูล และจำนวนคอร์ที่ต้องการสำหรับการวิเคราะห์ โปรดทราบว่า decorator @print_timing ถูกใช้เพื่อวัดเวลาของแต่ละการดำเนินการ

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Data Engineering เบื้องต้น

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เติมโค้ดให้สมบูรณ์ โดยเรียกใช้ take_mean_age ด้วย 1 คอร์ก่อน จากนั้น 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'), ____)
แก้ไขและรันโค้ด