Hồ sơ hiệu năng cho một truy vấn lazy
Trước khi thêm một truy vấn mới vào quy trình hằng ngày, nhóm muốn biết thời gian thực sự tiêu tốn ở đâu. Việc lập hồ sơ sẽ chạy truy vấn lazy giống như .collect(), nhưng còn trả về một DataFrame thời gian với một dòng cho mỗi giai đoạn.
Bài tập này là một phần của khóa học
Mở rộng và tối ưu hóa pipeline dữ liệu với Polars
Hướng dẫn bài tập
- Lọc
libraryđể chỉ lấy các lượt mượn cóuselà"Physical". - Giữ 10 tựa sách dài nhất theo
title_lenbằng.top_k(). - Thực thi truy vấn với chế độ lập hồ sơ để bạn cũng nhận được một DataFrame thời gian.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
result, timings = (
library
# Filter to physical checkouts
.filter(pl.col("use") == "____")
.with_columns(pl.col("title").str.len_chars().alias("title_len"))
# Keep the 10 longest titles
.top_k(10, by="____")
# Run with profiling to capture per-stage timings
.____()
)
print(timings)