การประมวลผลผลลัพธ์ของคิวรีแบบแบตช์
ทีมต้องการส่งข้อมูลแถว digital checkout ไปยังระบบปลายทางทีละส่วน แทนที่จะรวบรวมเป็น DataFrame ขนาดใหญ่ก้อนเดียว ให้วนลูปผ่านแบตช์ขนาด 5,000 แถว แล้วบันทึกข้อมูลสรุปของแต่ละแบตช์ไว้
มี LazyFrame ชื่อ digital_rows ที่กรองเฉพาะ digital checkouts โหลดไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การปรับขนาดและเพิ่มประสิทธิภาพ Data Pipeline ด้วย Polars
คำแนะนำการฝึกหัด
- วนลูปผ่าน
digital_rowsทีละ 5,000 แถวโดยใช้ streaming engine
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
batch_summaries = []
# Stream digital_rows in chunks of 5,000
for batch_no, batch in enumerate(
digital_rows.____(chunk_size=____, engine="streaming"),
start=1,
):
batch_summaries.append(
{
"batch": batch_no,
"rows": batch.height,
"checkouts": batch["checkouts"].sum(),
}
)
result = pl.DataFrame(batch_summaries)
print(result)