robin-sparkless-core 4.2.0

Shared types, config, and error for robin-sparkless (no Polars).
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//! Engine-agnostic plan executor trait.

use crate::engine::DataFrameBackend;
use crate::engine::SparkSessionBackend;
use crate::error::EngineError;
use serde_json::Value as JsonValue;

/// Executes a logical plan (JSON list of ops) and returns a DataFrame.
pub trait PlanExecutor: Send + Sync {
    fn execute_plan(
        session: &dyn SparkSessionBackend,
        data: Vec<Vec<JsonValue>>,
        schema: Vec<(String, String)>,
        plan: &[JsonValue],
    ) -> Result<Box<dyn DataFrameBackend>, EngineError>;
}