Perfilado de una consulta lazy
Antes de incorporar una nueva consulta a un flujo de trabajo diario, el equipo quiere ver dónde se invierte realmente el tiempo. El perfilado ejecuta la consulta lazy como lo hace .collect(), pero además devuelve un DataFrame de tiempos con una fila por etapa.
Este ejercicio forma parte del curso
Escala y optimiza canalizaciones de datos con Polars
Instrucciones del ejercicio
- Filtra
librarypara quedarte con los préstamos dondeusesea"Physical". - Conserva los 10 títulos más largos según
title_lenusando.top_k(). - Ejecuta la consulta con perfilado para obtener también un DataFrame de tiempos.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
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)