Profilarea unei interogări lazy
Înainte de a adăuga o nouă interogare într-un flux de lucru zilnic, echipa vrea să vadă unde se consumă efectiv timpul. Profilarea rulează interogarea lazy la fel ca .collect(), dar returnează și un DataFrame cu timpi de execuție – câte un rând pentru fiecare etapă.
Acest exercițiu face parte din cursul
Scalarea și optimizarea pipeline-urilor de date cu Polars
Instrucțiuni pentru exercițiu
- Filtrează
librarypentru a păstra doar împrumuturile undeuseeste"Physical". - Păstrează cele 10 titluri mai lungi pe baza coloanei
title_len, folosind.top_k(). - Execută interogarea cu profilare, astfel încât să obții și un DataFrame cu timpi de execuție.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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)