Профілювання ледачого запиту
Перш ніж додати новий запит до щоденного робочого процесу, команда хоче побачити, де саме витрачається час. Профілювання виконує ледачий запит так само, як .collect(), але додатково повертає датафрейм з вимірами часу з одним рядком на кожен етап.
Ця вправа є частиною курсу
Масштабування й оптимізація конвеєрів даних з Polars
Інструкції до вправи
- Відфільтруйте
libraryдо записів, деuseмає значення"Physical". - Залиште 10 найдовших назв за
title_len, використавши.top_k(). - Виконайте запит із профілюванням, щоб також отримати датафрейм із вимірами часу.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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)