pub trait DataFrameBackend: Send + Sync {
Show 19 methods
// Required methods
fn as_any(&self) -> &(dyn Any + Send + Sync);
fn filter(
&self,
condition: &ExprIr,
) -> Result<Box<dyn DataFrameBackend>, EngineError>;
fn select(
&self,
exprs: &[ExprIr],
) -> Result<Box<dyn DataFrameBackend>, EngineError>;
fn select_columns(
&self,
columns: &[&str],
) -> Result<Box<dyn DataFrameBackend>, EngineError>;
fn with_column(
&self,
name: &str,
expr: &ExprIr,
) -> Result<Box<dyn DataFrameBackend>, EngineError>;
fn join(
&self,
other: &dyn DataFrameBackend,
on: &[&str],
how: JoinType,
) -> Result<Box<dyn DataFrameBackend>, EngineError>;
fn group_by(
&self,
column_names: &[&str],
) -> Result<Box<dyn GroupedDataBackend>, EngineError>;
fn order_by(
&self,
column_names: &[&str],
ascending: &[bool],
) -> Result<Box<dyn DataFrameBackend>, EngineError>;
fn limit(&self, n: usize) -> Result<Box<dyn DataFrameBackend>, EngineError>;
fn union(
&self,
other: &dyn DataFrameBackend,
) -> Result<Box<dyn DataFrameBackend>, EngineError>;
fn union_by_name(
&self,
other: &dyn DataFrameBackend,
allow_missing_columns: bool,
) -> Result<Box<dyn DataFrameBackend>, EngineError>;
fn distinct(
&self,
subset: Option<Vec<&str>>,
) -> Result<Box<dyn DataFrameBackend>, EngineError>;
fn drop_columns(
&self,
columns: &[&str],
) -> Result<Box<dyn DataFrameBackend>, EngineError>;
fn with_column_renamed(
&self,
old_name: &str,
new_name: &str,
) -> Result<Box<dyn DataFrameBackend>, EngineError>;
fn cross_join(
&self,
other: &dyn DataFrameBackend,
) -> Result<Box<dyn DataFrameBackend>, EngineError>;
fn collect(&self) -> Result<CollectedRows, EngineError>;
fn schema(&self) -> Result<StructType, EngineError>;
fn columns(&self) -> Result<Vec<String>, EngineError>;
fn count(&self) -> Result<u64, EngineError>;
}Expand description
Backend for DataFrame operations. All expression arguments use ExprIr.
Implementors can be downcast via as_any() for backend-specific operations (e.g. join).
Required Methods§
Sourcefn as_any(&self) -> &(dyn Any + Send + Sync)
fn as_any(&self) -> &(dyn Any + Send + Sync)
For downcasting to concrete backend type (e.g. for join with same backend).