Cargo.tomlAdd the following to your Cargo.toml file:
datafusion = "8.0.0" tokio = "1.0"
use datafusion::prelude::*; #[tokio::main] async fn main() -> datafusion::error::Result<()> { // register the table let ctx = SessionContext::new(); ctx.register_csv("example", "tests/example.csv", CsvReadOptions::new()).await?; // create a plan to run a SQL query let df = ctx.sql("SELECT a, MIN(b) FROM example GROUP BY a LIMIT 100").await?; // execute and print results df.show().await?; Ok(()) }
use datafusion::prelude::*; #[tokio::main] async fn main() -> datafusion::error::Result<()> { // create the dataframe let ctx = SessionContext::new(); let df = ctx.read_csv("tests/example.csv", CsvReadOptions::new()).await?; let df = df.filter(col("a").lt_eq(col("b")))? .aggregate(vec![col("a")], vec![min(col("b"))])?; // execute and print results df.show_limit(100).await?; Ok(()) }
+---+--------+ | a | MIN(b) | +---+--------+ | 1 | 2 | +---+--------+