对惰性查询进行性能剖析
在将新查询加入每日工作流之前,团队想了解时间都花在了哪里。性能剖析会像 .collect() 一样运行惰性查询,但还会返回一个按阶段统计的 timings DataFrame,每个阶段一行。
本练习是课程的一部分
使用 Polars 扩展与优化数据流水线
练习说明
- 过滤
library,仅保留use为"Physical"的借阅记录。 - 使用
.top_k()按title_len保留标题最长的 10 条记录。 - 以开启性能剖析的方式执行查询,从而同时获得 timings DataFrame。
交互式实操练习
通过完成这段示例代码来试试这个练习。
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)