CommencerCommencez gratuitement

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>
Voir le cours

Instructions de l’exercice

  • Filtrez library pour ne garder que les emprunts où use vaut "Physical".
  • Gardez les 10 titres les plus longs selon title_len avec .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)
Modifier et exécuter le code