use robin_sparkless::prelude::*;
use robin_sparkless::{col, count, gt, lit_i64, sum};
fn main() -> Result<(), robin_sparkless::EngineError> {
let config = SparklessConfig::from_env();
let spark = SparkSession::from_config(&config);
let df = spark.create_dataframe_engine(
vec![
(1i64, 100i64, "Alice".to_string()),
(2i64, 200i64, "Bob".to_string()),
(3i64, 300i64, "Charlie".to_string()),
],
vec!["id", "score", "name"],
)?;
let filtered = df.filter_expr_ir(>(col("id"), lit_i64(1)))?;
let grouped = filtered.group_by_engine(vec!["id"])?;
let aggregated = grouped.agg_expr_ir(&[count(col("score")), sum(col("score"))])?;
println!("Schema: {:?}", aggregated.schema_engine()?);
let json = aggregated.to_json_rows()?;
println!("Rows (JSON): {}", json);
Ok(())
}