Frames perezosos en Python
Diferir el trabajo para que Polars optimice la consulta completa.
import polars as pl
lazy = pl.LazyFrame({
"city": ["akl", "wlg", "akl", "chc", "wlg"],
"temp": [18, 14, 21, 12, 16],
})
consulta = (
lazy
.filter(pl.col("temp") > 13)
.group_by("city")
.agg(pl.col("temp").mean().alias("avg_temp"))
.sort("avg_temp", descending=True)
)
plan = consulta.explain()
resultado = consulta.collect()
Cómo funciona
LazyFrameregistra operaciones sin ejecutarlas.explainmuestra el plan de consulta optimizado.collectlo ejecuta y devuelve el resultado.
Palabras clave y builtins usados aquí
as
El intento, en números
- Líneas
- 17
- Caracteres a escribir
- 327
- Tokens
- 129
- Ritmo de tres estrellas
- 115 tpm
Al ritmo de tres estrellas de 115 tokens por minuto, este intento toma unos 67 segundos.
Paso 1 de 4 en Lazy y SQL; paso 25 de 32 en Polars.