Introduzione alla modalità lazy

Introduzione a Polars

Liam Brannigan

Data Scientist & Polars Contributor

Modalità eager

(
    pl.read_csv("vacation_rentals.csv")


)
  • Carica il CSV in un DataFrame

Modalità lazy

Introduzione a Polars

Modalità eager

(
    pl.read_csv("vacation_rentals.csv")


)
  • Carica il CSV in un DataFrame

Modalità lazy

(
    pl.scan_csv("vacation_rentals.csv")


)
  • Avvia il piano di query
  • Legge le prime righe del CSV
Introduzione a Polars

Modalità eager

(
    pl.read_csv("vacation_rentals.csv")


)
| name     | type    | ... | beach |
| ---      | ---     | ... | ---   |
| str      | str     | ... | bool  |
|----------|---------| ... |-------|
| Waves    | Cottage | ... | false |
| Seashell | Cottage | ... | true  |
| ...      | ...     | ... | ...   |

Modalità lazy

(
    pl.scan_csv("vacation_rentals.csv")


)
piano ingenuo: 

Csv SCAN [vacation_rentals.csv]
PROJECT */8 COLUMNS
Introduzione a Polars

Modalità eager

(
    pl.read_csv("vacation_rentals.csv")
    .select("name","price")

)

Modalità lazy

Introduzione a Polars

Modalità eager

(
    pl.read_csv("vacation_rentals.csv")
    .select("name","price")

)

Modalità lazy

(
    pl.scan_csv("vacation_rentals.csv")
    .select("name","price")

)
  • Aggiorna il piano di query
  • Ottimizza il piano di query
Introduzione a Polars

Piano di query ottimizzato

print(
    pl.scan_csv("vacation_rentals.csv")
    .select("name","price")
    .explain()
)
Csv SCAN [vacation_rentals.csv]

PROJECT 2/8 COLUMNS
  • Ottimizzazione: projection pushdown
Introduzione a Polars

Eseguire una query lazy

(
    pl.scan_csv("vacation_rentals.csv")
    .select("name","price")
    .collect()
)
shape: (49, 2)
| name      | price |
| ---       | ---   |
| str       | i64   |
|-----------|-------|
| Waves     | 540   |
| Seashells | 540   |
| ...       | ...   |
Introduzione a Polars

Modalità eager vs. modalità lazy

(
    pl.read_csv("vacation_rentals.csv")
    .select("name","price")

)
  • Riga per riga
(
    pl.scan_csv("vacation_rentals.csv")
    .select("name","price")
    .collect()
)
  • Query completa
Introduzione a Polars

Modalità eager vs. modalità lazy

Un orso Polare che corre e un orso Polars che dorme

  • passo-passo: modalità eager
  • debugging: modalità eager
  • prestazioni ottimizzate: modalità lazy
Introduzione a Polars

Ayo berlatih!

Introduzione a Polars

Preparing Video For Download...