Profiler une requête lazy
Avant d'ajouter une nouvelle requête à un flux quotidien, l'équipe veut savoir où le temps est réellement passé. Le profilage exécute la requête lazy comme .collect(), mais renvoie aussi un DataFrame de temps d'exécution avec une ligne par étape.
Cet exercice fait partie du cours
<cours>Mise à l'échelle et optimisation des pipelines de données avec Polars</cours>Instructions de l’exercice
- Filtrez
librarypour ne garder que les emprunts oùusevaut"Physical". - Gardez les 10 titres les plus longs selon
title_lenavec.top_k(). - Exécutez la requête avec profilage afin d'obtenir également un DataFrame des temps d'exécution.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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)