НачатьНачать бесплатно

Профилирование ленивого запроса

Прежде чем добавить новый запрос в ежедневный рабочий процесс, команда хочет понять, на что уходит время. Профилирование выполняет ленивый запрос так же, как .collect(), но дополнительно возвращает DataFrame с временными показателями — по одной строке на каждый этап.

Это упражнение является частью курса

Масштабирование и оптимизация конвейеров данных с Polars

Посмотреть курс

Инструкции к упражнению

  • Отфильтруйте library, оставив только записи, в которых use равно "Physical".
  • Выберите 10 самых длинных названий по столбцу title_len с помощью .top_k().
  • Выполните запрос с профилированием, чтобы также получить DataFrame с временными показателями.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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)
Редактировать и запускать код