robin_sparkless_core/engine/
session.rs1use crate::engine::{DataFrameBackend, DataFrameReaderBackend};
4use crate::error::EngineError;
5use serde_json::Value as JsonValue;
6
7pub trait SparkSessionBackend: Send + Sync {
9 fn read(&self) -> Box<dyn DataFrameReaderBackend>;
10 fn table(&self, name: &str) -> Result<Box<dyn DataFrameBackend>, EngineError>;
11 fn create_dataframe_from_rows(
12 &self,
13 rows: Vec<Vec<JsonValue>>,
14 schema: Vec<(String, String)>,
15 verify_schema: bool,
16 schema_was_inferred: bool,
17 ) -> Result<Box<dyn DataFrameBackend>, EngineError>;
18 fn create_dataframe(
19 &self,
20 data: Vec<(i64, i64, String)>,
21 column_names: Vec<&str>,
22 ) -> Result<Box<dyn DataFrameBackend>, EngineError>;
23 fn sql(&self, query: &str) -> Result<Box<dyn DataFrameBackend>, EngineError>;
24 fn register_table(&self, name: &str, df: &dyn DataFrameBackend);
25 fn is_case_sensitive(&self) -> bool;
26 fn get_config(&self) -> &std::collections::HashMap<String, String>;
27}
28
29