Skip to main content

PySessionContext

Struct PySessionContext 

Source
pub struct PySessionContext {
    pub ctx: Arc<SessionContext>,
    /* private fields */
}
Expand description

PySessionContext is able to plan and execute DataFusion plans. It has a powerful optimizer, a physical planner for local execution, and a multi-threaded execution engine to perform the execution.

Fields§

§ctx: Arc<SessionContext>

Implementations§

Source§

impl PySessionContext

Source

pub fn new( config: Option<PySessionConfig>, runtime: Option<PyRuntimeEnvBuilder>, ) -> PyDataFusionResult<Self>

Source

pub fn enable_url_table(&self) -> PyResult<Self>

Source

pub fn global_ctx() -> PyResult<Self>

Source

pub fn register_object_store( &self, scheme: &str, store: StorageContexts, host: Option<&str>, ) -> PyResult<()>

Register an object store with the given name

Source

pub fn deregister_object_store( &self, scheme: &str, host: Option<&str>, ) -> PyDataFusionResult<()>

Deregister an object store with the given url

Source

pub fn register_listing_table( &self, name: &str, path: PathBuf, table_partition_cols: Vec<(String, PyArrowType<DataType>)>, file_extension: &str, schema: Option<PyArrowType<Schema>>, file_sort_order: Option<Vec<Vec<PySortExpr>>>, py: Python<'_>, ) -> PyDataFusionResult<()>

Source

pub fn register_udtf(&self, func: PyTableFunction)

Source

pub fn deregister_udtf(&self, name: &str)

Source

pub fn sql_with_options( &self, py: Python<'_>, query: String, options: Option<PySQLOptions>, param_values: HashMap<String, PyScalarValue>, param_strings: HashMap<String, String>, ) -> PyDataFusionResult<PyDataFrame>

Source

pub fn create_dataframe( &self, partitions: PyArrowType<Vec<Vec<RecordBatch>>>, name: Option<&str>, schema: Option<PyArrowType<Schema>>, py: Python<'_>, ) -> PyDataFusionResult<PyDataFrame>

Source

pub fn create_dataframe_from_logical_plan( &self, plan: PyLogicalPlan, ) -> PyDataFrame

Create a DataFrame from an existing logical plan

Source

pub fn from_pylist( &self, data: Bound<'_, PyList>, name: Option<&str>, ) -> PyResult<PyDataFrame>

Construct datafusion dataframe from Python list

Source

pub fn from_pydict( &self, data: Bound<'_, PyDict>, name: Option<&str>, ) -> PyResult<PyDataFrame>

Construct datafusion dataframe from Python dictionary

Source

pub fn from_arrow( &self, data: Bound<'_, PyAny>, name: Option<&str>, py: Python<'_>, ) -> PyDataFusionResult<PyDataFrame>

Construct datafusion dataframe from Arrow Table

Source

pub fn from_pandas( &self, data: Bound<'_, PyAny>, name: Option<&str>, ) -> PyResult<PyDataFrame>

Construct datafusion dataframe from pandas

Source

pub fn from_polars( &self, data: Bound<'_, PyAny>, name: Option<&str>, ) -> PyResult<PyDataFrame>

Construct datafusion dataframe from polars

Source

pub fn register_table( &self, name: &str, table: Bound<'_, PyAny>, ) -> PyDataFusionResult<()>

Source

pub fn deregister_table(&self, name: &str) -> PyDataFusionResult<()>

Source

pub fn register_table_factory( &self, format: &str, factory: Bound<'_, PyAny>, ) -> PyDataFusionResult<()>

Source

pub fn register_catalog_provider_list( &self, provider: Bound<'_, PyAny>, ) -> PyDataFusionResult<()>

Source

pub fn register_catalog_provider( &self, name: &str, provider: Bound<'_, PyAny>, ) -> PyDataFusionResult<()>

Source

pub fn register_table_provider( &self, name: &str, provider: Bound<'_, PyAny>, ) -> PyDataFusionResult<()>

Construct datafusion dataframe from Arrow Table

Source

pub fn register_record_batches( &self, name: &str, partitions: PyArrowType<Vec<Vec<RecordBatch>>>, ) -> PyDataFusionResult<()>

Source

pub fn read_batches( &self, batches: PyArrowType<Vec<RecordBatch>>, ) -> PyDataFusionResult<PyDataFrame>

Source

pub fn register_parquet( &self, name: &str, path: PathBuf, table_partition_cols: Vec<(String, PyArrowType<DataType>)>, parquet_pruning: bool, file_extension: &str, skip_metadata: bool, schema: Option<PyArrowType<Schema>>, file_sort_order: Option<Vec<Vec<PySortExpr>>>, py: Python<'_>, ) -> PyDataFusionResult<()>

Source

pub fn register_csv( &self, name: &str, path: &Bound<'_, PyAny>, options: Option<&PyCsvReadOptions>, py: Python<'_>, ) -> PyDataFusionResult<()>

Source

pub fn register_json( &self, name: &str, path: PathBuf, schema: Option<PyArrowType<Schema>>, schema_infer_max_records: usize, file_extension: &str, table_partition_cols: Vec<(String, PyArrowType<DataType>)>, file_compression_type: Option<String>, py: Python<'_>, ) -> PyDataFusionResult<()>

Source

pub fn register_avro( &self, name: &str, path: PathBuf, schema: Option<PyArrowType<Schema>>, file_extension: &str, table_partition_cols: Vec<(String, PyArrowType<DataType>)>, py: Python<'_>, ) -> PyDataFusionResult<()>

Source

pub fn register_arrow( &self, name: &str, path: PathBuf, schema: Option<PyArrowType<Schema>>, file_extension: &str, table_partition_cols: Vec<(String, PyArrowType<DataType>)>, py: Python<'_>, ) -> PyDataFusionResult<()>

Source

pub fn register_batch( &self, name: &str, batch: PyArrowType<RecordBatch>, ) -> PyDataFusionResult<()>

Source

pub fn register_dataset( &self, name: &str, dataset: &Bound<'_, PyAny>, py: Python<'_>, ) -> PyDataFusionResult<()>

Source

pub fn register_udf(&self, udf: PyScalarUDF) -> PyResult<()>

Source

pub fn deregister_udf(&self, name: &str)

Source

pub fn register_udaf(&self, udaf: PyAggregateUDF) -> PyResult<()>

Source

pub fn enable_spark_functions(&self) -> PyResult<()>

Register all datafusion-spark UDFs/UDAFs/UDWFs, overriding any built-in DataFusion functions of the same name with their Spark-semantics version.

Source

pub fn deregister_udaf(&self, name: &str)

Source

pub fn register_udwf(&self, udwf: PyWindowUDF) -> PyResult<()>

Source

pub fn deregister_udwf(&self, name: &str)

Source

pub fn udf(&self, name: &str) -> PyResult<PyScalarUDF>

Source

pub fn udaf(&self, name: &str) -> PyResult<PyAggregateUDF>

Source

pub fn udwf(&self, name: &str) -> PyResult<PyWindowUDF>

Source

pub fn udfs(&self) -> Vec<String>

Source

pub fn udafs(&self) -> Vec<String>

Source

pub fn udwfs(&self) -> Vec<String>

Source

pub fn catalog(&self, py: Python<'_>, name: &str) -> PyResult<Py<PyAny>>

Source

pub fn catalog_names(&self) -> HashSet<String>

Source

pub fn table(&self, name: &str, py: Python<'_>) -> PyResult<PyDataFrame>

Source

pub fn table_exist(&self, name: &str) -> PyDataFusionResult<bool>

Source

pub fn empty_table(&self) -> PyDataFusionResult<PyDataFrame>

Source

pub fn session_id(&self) -> String

Source

pub fn copied_config(&self) -> PySessionConfig

Return a copy of the active SessionConfig. Mutating the returned config does not affect this context.

Source

pub fn parse_capacity_limit( config_name: &str, limit: &str, ) -> PyDataFusionResult<usize>

Parse a string like "100M", "1.5G", or "512K" into a byte count. "0" is accepted and returns 0. Use this when constructing a RuntimeEnvBuilder from a human-friendly size string.

Source

pub fn session_start_time(&self) -> String

Source

pub fn enable_ident_normalization(&self) -> bool

Source

pub fn parse_sql_expr( &self, sql: &str, schema: PyDFSchema, ) -> PyDataFusionResult<PyExpr>

Source

pub fn execute_logical_plan( &self, plan: PyLogicalPlan, py: Python<'_>, ) -> PyDataFusionResult<PyDataFrame>

Source

pub fn refresh_catalogs(&self, py: Python<'_>) -> PyDataFusionResult<()>

Source

pub fn remove_optimizer_rule(&self, name: &str) -> bool

Source

pub fn add_physical_optimizer_rule( &self, rule: Bound<'_, PyAny>, ) -> PyDataFusionResult<()>

Source

pub fn table_provider(&self, name: &str, py: Python<'_>) -> PyResult<PyTable>

Source

pub fn read_json( &self, path: PathBuf, schema: Option<PyArrowType<Schema>>, schema_infer_max_records: usize, file_extension: &str, table_partition_cols: Vec<(String, PyArrowType<DataType>)>, file_compression_type: Option<String>, py: Python<'_>, ) -> PyDataFusionResult<PyDataFrame>

Source

pub fn read_csv( &self, path: &Bound<'_, PyAny>, options: Option<&PyCsvReadOptions>, py: Python<'_>, ) -> PyDataFusionResult<PyDataFrame>

Source

pub fn read_parquet( &self, path: PathBuf, table_partition_cols: Vec<(String, PyArrowType<DataType>)>, parquet_pruning: bool, file_extension: &str, skip_metadata: bool, schema: Option<PyArrowType<Schema>>, file_sort_order: Option<Vec<Vec<PySortExpr>>>, py: Python<'_>, ) -> PyDataFusionResult<PyDataFrame>

Source

pub fn read_avro( &self, path: PathBuf, schema: Option<PyArrowType<Schema>>, table_partition_cols: Vec<(String, PyArrowType<DataType>)>, file_extension: &str, py: Python<'_>, ) -> PyDataFusionResult<PyDataFrame>

Source

pub fn read_arrow( &self, path: PathBuf, schema: Option<PyArrowType<Schema>>, file_extension: &str, table_partition_cols: Vec<(String, PyArrowType<DataType>)>, py: Python<'_>, ) -> PyDataFusionResult<PyDataFrame>

Source

pub fn read_table( &self, table: Bound<'_, PyAny>, ) -> PyDataFusionResult<PyDataFrame>

Source

pub fn execute( &self, plan: PyExecutionPlan, part: usize, py: Python<'_>, ) -> PyDataFusionResult<PyRecordBatchStream>

Execute a partition of an execution plan and return a stream of record batches

Source

pub fn __datafusion_task_context_provider__<'py>( &self, py: Python<'py>, ) -> PyResult<Bound<'py, PyCapsule>>

Source

pub fn __datafusion_logical_extension_codec__<'py>( &self, py: Python<'py>, ) -> PyResult<Bound<'py, PyCapsule>>

Source

pub fn with_logical_extension_codec<'py>( &self, codec: Bound<'py, PyAny>, ) -> PyDataFusionResult<Self>

Source

pub fn __datafusion_physical_extension_codec__<'py>( &self, py: Python<'py>, ) -> PyResult<Bound<'py, PyCapsule>>

Source

pub fn with_physical_extension_codec<'py>( &self, codec: Bound<'py, PyAny>, ) -> PyDataFusionResult<Self>

Source

pub fn with_python_udf_inlining(&self, enabled: bool) -> Self

Trait Implementations§

Source§

impl Clone for PySessionContext

Source§

fn clone(&self) -> PySessionContext

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl DerefToPyAny for PySessionContext

Source§

impl From<PySessionContext> for SessionContext

Source§

fn from(ctx: PySessionContext) -> SessionContext

Converts to this type from the input type.
Source§

impl From<SessionContext> for PySessionContext

Source§

fn from(ctx: SessionContext) -> PySessionContext

Converts to this type from the input type.
Source§

impl<'a, 'py> FromPyObject<'a, 'py> for PySessionContext
where Self: Clone,

Source§

type Error = PyClassGuardError<'a, 'py>

The type returned in the event of a conversion error. Read more
Source§

fn extract( obj: Borrowed<'a, 'py, PyAny>, ) -> Result<Self, <Self as FromPyObject<'a, 'py>>::Error>

Extracts Self from the bound smart pointer obj. Read more
Source§

impl<'py> IntoPyObject<'py> for PySessionContext

Source§

type Target = PySessionContext

The Python output type
Source§

type Output = Bound<'py, <PySessionContext as IntoPyObject<'py>>::Target>

The smart pointer type to use. Read more
Source§

type Error = PyErr

The type returned in the event of a conversion error.
Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>

Performs the conversion.
Source§

impl PyClass for PySessionContext

Source§

const NAME: &str = "SessionContext"

Name of the class. Read more
Source§

type Frozen = True

Whether the pyclass is frozen. Read more
Source§

impl PyClassBaseType for PySessionContext

Source§

type LayoutAsBase = <PySessionContext as PyClassImpl>::Layout

Source§

type BaseNativeType = <PySessionContext as PyClassImpl>::BaseNativeType

Source§

type Initializer = PyClassInitializer<PySessionContext>

Source§

type PyClassMutability = <PySessionContext as PyClassImpl>::PyClassMutability

Source§

type Layout<T: PyClassImpl> = <<PySessionContext as PyClassBaseType>::BaseNativeType as PyClassBaseType>::Layout<T>

The type of object layout to use for ancestors or descendants of this type.
Source§

impl PyClassImpl for PySessionContext

Source§

const MODULE: Option<&str>

Module which the class will be associated with. Read more
Source§

const IS_BASETYPE: bool = true

#[pyclass(subclass)]
Source§

const IS_SUBCLASS: bool = false

#[pyclass(extends=…)]
Source§

const IS_MAPPING: bool = false

#[pyclass(mapping)]
Source§

const IS_SEQUENCE: bool = false

#[pyclass(sequence)]
Source§

const IS_IMMUTABLE_TYPE: bool = false

#[pyclass(immutable_type)]
Source§

const RAW_DOC: &'static CStr = /// `PySessionContext` is able to plan and execute DataFusion plans. /// It has a powerful optimizer, a physical planner for local execution, and a /// multi-threaded execution engine to perform the execution.

Docstring for the class provided on the struct or enum. Read more
Source§

const DOC: &'static CStr

Fully rendered class doc, including the text_signature if a constructor is defined. Read more
Source§

type Layout = <<PySessionContext as PyClassImpl>::BaseNativeType as PyClassBaseType>::Layout<PySessionContext>

Description of how this class is laid out in memory
Source§

type BaseType = PyAny

Base class
Source§

type ThreadChecker = NoopThreadChecker

This handles following two situations: Read more
Source§

type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::ImmutableChild

Immutable or mutable
Source§

type Dict = PyClassDummySlot

Specify this class has #[pyclass(dict)] or not.
Source§

type WeakRef = PyClassDummySlot

Specify this class has #[pyclass(weakref)] or not.
Source§

type BaseNativeType = PyAny

The closest native ancestor. This is PyAny by default, and when you declare #[pyclass(extends=PyDict)], it’s PyDict.
Source§

fn items_iter() -> PyClassItemsIter

Source§

fn lazy_type_object() -> &'static LazyTypeObject<Self>

Source§

fn dict_offset() -> Option<PyObjectOffset>

Used to provide the dictoffset slot (equivalent to tp_dictoffset)
Source§

fn weaklist_offset() -> Option<PyObjectOffset>

Used to provide the weaklistoffset slot (equivalent to tp_weaklistoffset
Source§

impl PyClassNewTextSignature for PySessionContext

Source§

const TEXT_SIGNATURE: &'static str = "(config=None, runtime=None)"

Source§

impl PyMethods<PySessionContext> for PyClassImplCollector<PySessionContext>

Source§

fn py_methods(self) -> &'static PyClassItems

Source§

impl PyTypeInfo for PySessionContext

Source§

const NAME: &str = <Self as ::pyo3::PyClass>::NAME

👎Deprecated since 0.28.0:

prefer using ::type_object(py).name() to get the correct runtime value

Class name.
Source§

const MODULE: Option<&str> = <Self as ::pyo3::impl_::pyclass::PyClassImpl>::MODULE

👎Deprecated since 0.28.0:

prefer using ::type_object(py).module() to get the correct runtime value

Module name, if any.
Source§

fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject

Returns the PyTypeObject instance for this type.
Source§

fn type_object(py: Python<'_>) -> Bound<'_, PyType>

Returns the safe abstraction over the type object.
Source§

fn is_type_of(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of this type or a subclass of this type.
Source§

fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of this type.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<Source> AccessAs for Source

Source§

fn ref_as<T>(&self) -> <Source as IGuardRef<T>>::Guard<'_>
where Source: IGuardRef<T>, T: ?Sized,

Provides immutable access to a type as if it were its ABI-unstable equivalent.
Source§

fn mut_as<T>(&mut self) -> <Source as IGuardMut<T>>::GuardMut<'_>
where Source: IGuardMut<T>, T: ?Sized,

Provides mutable access to a type as if it were its ABI-unstable equivalent.
Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<'py, T> FromPyObjectOwned<'py> for T
where T: for<'a> FromPyObject<'a, 'py>,

Source§

impl<T, As> IGuardMut<As> for T
where T: Into<As>, As: Into<T>,

Source§

type GuardMut<'a> = MutAs<'a, T, As> where T: 'a

The type of the guard which will clean up the temporary after applying its changes to the original.
Source§

fn guard_mut_inner(&mut self) -> <T as IGuardMut<As>>::GuardMut<'_>

Construct the temporary and guard it through a mutable reference.
Source§

impl<T, As> IGuardRef<As> for T
where T: Into<As>, As: Into<T>,

Source§

type Guard<'a> = RefAs<'a, T, As> where T: 'a

The type of the guard which will clean up the temporary.
Source§

fn guard_ref_inner(&self) -> <T as IGuardRef<As>>::Guard<'_>

Construct the temporary and guard it through an immutable reference.
Source§

impl<T> Includes<End> for T

Source§

type Output = End

The result
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<'py, T> IntoPyObjectExt<'py> for T
where T: IntoPyObject<'py>,

Source§

fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>

Converts self into an owned Python object, dropping type information.
Source§

fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>

Converts self into an owned Python object, dropping type information and unbinding it from the 'py lifetime.
Source§

fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>

Converts self into a Python object. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> PyErrArguments for T
where T: for<'py> IntoPyObject<'py> + Send + Sync,

Source§

fn arguments(self, py: Python<'_>) -> Py<PyAny>

Arguments for exception
Source§

impl<T> PyTypeCheck for T
where T: PyTypeInfo,

Source§

const NAME: &'static str = T::NAME

👎Deprecated since 0.27.0:

Use ::classinfo_object() instead and format the type name at runtime. Note that using built-in cast features is often better than manual PyTypeCheck usage.

Name of self. This is used in error messages, for example.
Source§

fn type_check(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of Self, which may include a subtype. Read more
Source§

fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>

Returns the expected type as a possible argument for the isinstance and issubclass function. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> Ungil for T
where T: Send,

Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more