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 ) -> Result<Box<dyn DataFrameBackend>, EngineError>;
16 fn create_dataframe(
17 &self,
18 data: Vec<(i64, i64, String)>,
19 column_names: Vec<&str>,
20 ) -> Result<Box<dyn DataFrameBackend>, EngineError>;
21 fn sql(&self, query: &str) -> Result<Box<dyn DataFrameBackend>, EngineError>;
22 fn register_table(&self, name: &str, df: &dyn DataFrameBackend);
23 fn is_case_sensitive(&self) -> bool;
24 fn get_config(&self) -> &std::collections::HashMap<String, String>;
25}
26
27