Profiler une requête paresseuse
Avant d'ajouter une nouvelle requête à un flux de travail quotidien, l'équipe veut savoir où le temps est réellement passé. Le profilage exécute la requête paresseuse comme .collect(), mais retourne aussi un DataFrame des temps d'exécution avec une ligne par étape.
Cette activité fait partie du cours
Mise à l'échelle et optimisation des pipelines de données avec Polars
Instructions de l’exercice
- Filtrez
libraryaux emprunts oùusevaut"Physical". - Gardez les 10 titres les plus longs selon
title_lenen utilisant.top_k(). - Exécutez la requête avec le profilage pour obtenir aussi 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)