Profilazione di una query lazy
Prima di aggiungere una nuova query a un flusso di lavoro quotidiano, il team vuole capire dove si spende realmente il tempo. La profilazione esegue la query lazy come .collect(), ma in più restituisce un DataFrame dei tempi con una riga per ogni fase.
Questo esercizio fa parte del corso
Scalare e ottimizzare le pipeline di dati con Polars
Istruzioni dell'esercizio
- Filtra
libraryper i prestiti in cuiuseè"Physical". - Tieni i 10 titoli più lunghi in base a
title_lenusando.top_k(). - Esegui la query con la profilazione in modo da ottenere anche un DataFrame dei tempi.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
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)