#[cfg(feature = "distributed")]
use std::collections::HashMap;
#[cfg(feature = "distributed")]
use std::sync::{Arc, Mutex};
#[cfg(feature = "distributed")]
use crate::dataframe::DataFrame;
use crate::error::{Error, Result};
#[cfg(feature = "distributed")]
pub use self::config::{DistributedConfig, ExecutorType};
#[cfg(feature = "distributed")]
pub use self::context::DistributedContext;
#[cfg(feature = "distributed")]
pub use self::dataframe::DistributedDataFrame;
#[cfg(feature = "distributed")]
pub use self::partition::{Partition, PartitionSet, PartitionStrategy};
#[cfg(feature = "distributed")]
pub use self::statistics::{ColumnStatistics, ColumnValue, TableStatistics};
#[cfg(feature = "distributed")]
pub mod config;
#[cfg(feature = "distributed")]
pub mod context;
#[cfg(feature = "distributed")]
pub mod dataframe;
#[cfg(feature = "distributed")]
pub mod partition;
#[cfg(feature = "distributed")]
pub mod statistics;
#[cfg(feature = "distributed")]
pub trait ToDistributed {
fn to_distributed(&self, config: DistributedConfig) -> Result<DistributedDataFrame>;
}
#[cfg(not(feature = "distributed"))]
pub struct DistributedDataFrame;
#[cfg(not(feature = "distributed"))]
pub struct DistributedConfig;
#[cfg(not(feature = "distributed"))]
impl DistributedConfig {
pub fn new() -> Self {
Self
}
}
#[cfg(not(feature = "distributed"))]
impl Default for DistributedConfig {
fn default() -> Self {
Self::new()
}
}
#[cfg(not(feature = "distributed"))]
pub trait ToDistributed {
fn to_distributed(&self, _: DistributedConfig) -> Result<DistributedDataFrame> {
Err(Error::FeatureNotAvailable(
"Distributed processing is not enabled. Recompile with the 'distributed' feature flag."
.to_string(),
))
}
}
#[cfg(feature = "distributed")]
impl ToDistributed for DataFrame {
fn to_distributed(&self, config: DistributedConfig) -> Result<DistributedDataFrame> {
DistributedDataFrame::from_local(self, config)
}
}