Path: blob/main/docs/source/src/rust/user-guide/concepts/lazy-vs-eager.rs
7889 views
use polars::prelude::*;12fn main() -> Result<(), Box<dyn std::error::Error>> {3// --8<-- [start:eager]4let df = CsvReadOptions::default()5.try_into_reader_with_file_path(Some("docs/assets/data/iris.csv".into()))6.unwrap()7.finish()8.unwrap();9let mask = df.column("sepal_length")?.f64()?.gt(5.0);10let df_small = df.filter(&mask)?;11#[allow(deprecated)]12let df_agg = df_small13.group_by(["species"])?14.select(["sepal_width"])15.mean()?;16println!("{df_agg}");17// --8<-- [end:eager]1819// --8<-- [start:lazy]20let q = LazyCsvReader::new(PlPath::new("docs/assets/data/iris.csv"))21.with_has_header(true)22.finish()?23.filter(col("sepal_length").gt(lit(5)))24.group_by(vec![col("species")])25.agg([col("sepal_width").mean()]);26let df = q.collect()?;27println!("{df}");28// --8<-- [end:lazy]2930// --8<-- [start:explain]31let q = LazyCsvReader::new(PlPath::new("docs/assets/data/iris.csv"))32.with_has_header(true)33.finish()?34.filter(col("sepal_length").gt(lit(5)))35.group_by(vec![col("species")])36.agg([col("sepal_width").mean()]);37println!("{}", q.explain(true)?);38// --8<-- [end:explain]3940Ok(())41}424344