El motor perezoso en Python
Un LazyFrame arma un plan; collect lo corre después de que el optimizador lo reescribe.
import polars as pl
tabla = pl.DataFrame({
"lang": ["python", "rust", "sql", "css"],
"tpm": [104, 98, 79, 70],
"note": ["a", "b", "c", "d"],
})
plan = (tabla.lazy()
.filter(pl.col("tpm") > 80)
.select("lang", "tpm")
.sort("tpm", descending=True))
print(plan.explain())
print(plan.collect())
Cómo funciona
explainimprime el plan y muestra los filtros empujados hacia abajo.- El pushdown de proyección lee solo las columnas que usas.
- Las respuestas eager y lazy son idénticas por construcción.
Palabras clave y builtins usados aquí
asprint
El intento, en números
- Líneas
- 15
- Caracteres a escribir
- 293
- Tokens
- 132
- Ritmo de tres estrellas
- 115 tpm
Al ritmo de tres estrellas de 115 tokens por minuto, este intento toma unos 69 segundos.
Paso 2 de 4 en Lazy y SQL; paso 26 de 32 en Polars.