Profiling einer Lazy Query
Bevor eine neue Abfrage in einen täglichen Workflow aufgenommen wird, möchte das Team sehen, wo tatsächlich Zeit verbraucht wird. Profiling führt die Lazy Query wie .collect() aus, gibt aber zusätzlich ein Timings-DataFrame mit einer Zeile pro Stufe zurück.
Diese Übung ist Teil des Kurses
<Kurs>Skalieren und Optimieren von Data-Pipelines mit Polars</Kurs>Übungsanweisungen
- Filtere
libraryauf Ausleihen, bei denenuse"Physical"ist. - Behalte die 10 längsten Titel nach
title_lenmit.top_k(). - Führe die Abfrage mit Profiling aus, damit du auch ein Timings-DataFrame erhältst.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
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)