Fast-path filter บนข้อมูลที่เรียงลำดับแล้ว
ทีมวิเคราะห์ข้อมูลย้อนหลังต้องการทุกรายการยืม-คืนที่เกิดขึ้นก่อนปี 2021 ไฟล์ CSV ถูกเรียงลำดับตามคอลัมน์ date อยู่แล้ว ดังนั้นหากแจ้งให้ Polars ทราบ มันจะหยุดสแกนทันทีที่พบแถวแรกของปี 2021 โดยไม่ต้องอ่านข้อมูลทั้งหมด
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การปรับขนาดและเพิ่มประสิทธิภาพ Data Pipeline ด้วย Polars
คำแนะนำการฝึกหัด
- ทำเครื่องหมายคอลัมน์
dateว่าเรียงลำดับแล้ว เพื่อให้ Polars ใช้การสแกนแบบ fast-path ได้ - กรองเฉพาะแถวที่
dateอยู่ก่อนวันที่ 1 มกราคม 2021 - รัน lazy query เพื่อดูผลลัพธ์
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
result = (
library
# Mark date as sorted to enable the fast-path scan
.____("date")
# Filter to rows before 2021-01-01
.filter(pl.col("date") < pl.____(2021, 1, 1))
# Execute the lazy query
.____()
)
print(result.head())