Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
SchemaMapping in datafusion::datasource::schema_adapter - Rust
[go: Go Back, main page]

Struct SchemaMapping

Source
pub struct SchemaMapping { /* private fields */ }
Expand description

The SchemaMapping struct holds a mapping from the file schema to the table schema and any necessary type conversions.

Note, because map_batch and map_partial_batch functions have different needs, this struct holds two schemas:

  1. The projected table schema
  2. The full table schema

map_batch is used by the ParquetOpener to produce a RecordBatch which has the projected schema, since that’s the schema which is supposed to come out of the execution of this query. Thus map_batch uses projected_table_schema as it can only operate on the projected fields.

map_partial_batch is used to create a RecordBatch with a schema that can be used for Parquet predicate pushdown, meaning that it may contain fields which are not in the projected schema (as the fields that parquet pushdown filters operate can be completely distinct from the fields that are projected (output) out of the ParquetSource). map_partial_batch thus uses table_schema to create the resulting RecordBatch (as it could be operating on any fields in the schema).

Trait Implementations§

Source§

impl Debug for SchemaMapping

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl SchemaMapper for SchemaMapping

Source§

fn map_batch(&self, batch: RecordBatch) -> Result<RecordBatch>

Adapts a RecordBatch to match the projected_table_schema using the stored mapping and conversions. The produced RecordBatch has a schema that contains only the projected columns, so if one needs a RecordBatch with a schema that references columns which are not in the projected, it would be better to use map_partial_batch

Source§

fn map_partial_batch(&self, batch: RecordBatch) -> Result<RecordBatch>

Adapts a RecordBatch’s schema into one that has all the correct output types and only contains the fields that exist in both the file schema and table schema.

Unlike map_batch this method also preserves the columns that may not appear in the final output (projected_table_schema) but may appear in push down predicates

Auto Trait Implementations§

Blanket Implementations§

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<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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<T> Same for T

Source§

type Output = T

Should always be Self
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T

Source§

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