pub struct Schema {
    pub fields: Vec<Field>,
    pub metadata: HashMap<String, String>,
}
Expand description

Describes the meta-data of an ordered sequence of relative types.

Note that this information is only part of the meta-data and not part of the physical memory layout.

Fields

fields: Vec<Field>metadata: HashMap<String, String>

A map of key-value pairs containing additional meta data.

Implementations

Creates an empty Schema

Creates a new Schema from a sequence of Field values.

Example
let field_a = Field::new("a", DataType::Int64, false);
let field_b = Field::new("b", DataType::Boolean, false);

let schema = Schema::new(vec![field_a, field_b]);

Creates a new Schema from a sequence of Field values and adds additional metadata in form of key value pairs.

Example
let field_a = Field::new("a", DataType::Int64, false);
let field_b = Field::new("b", DataType::Boolean, false);

let mut metadata: HashMap<String, String> = HashMap::new();
metadata.insert("row_count".to_string(), "100".to_string());

let schema = Schema::new_with_metadata(vec![field_a, field_b], metadata);

Sets the metadata of this Schema to be metadata and returns self

Returns a new schema with only the specified columns in the new schema This carries metadata from the parent schema over as well

Merge schema into self if it is compatible. Struct fields will be merged recursively.

Example:

use arrow::datatypes::*;

let merged = Schema::try_merge(vec![
    Schema::new(vec![
        Field::new("c1", DataType::Int64, false),
        Field::new("c2", DataType::Utf8, false),
    ]),
    Schema::new(vec![
        Field::new("c1", DataType::Int64, true),
        Field::new("c2", DataType::Utf8, false),
        Field::new("c3", DataType::Utf8, false),
    ]),
]).unwrap();

assert_eq!(
    merged,
    Schema::new(vec![
        Field::new("c1", DataType::Int64, true),
        Field::new("c2", DataType::Utf8, false),
        Field::new("c3", DataType::Utf8, false),
    ]),
);

Returns an immutable reference of the vector of Field instances.

Returns an immutable reference of a specific Field instance selected using an offset within the internal fields vector.

Returns an immutable reference of a specific Field instance selected by name.

Returns a vector of immutable references to all Field instances selected by the dictionary ID they use.

Find the index of the column with the given name.

Returns an immutable reference to the Map of custom metadata key-value pairs.

Look up a column by name and return a immutable reference to the column along with its index.

Check to see if self is a superset of other schema. Here are the comparison rules:

  • self and other should contain the same number of fields
  • for every field f in other, the field in self with corresponding index should be a superset of f.
  • self.metadata is a superset of other.metadata

In other words, any record conforms to other should also conform to self.

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Deserialize this value from the given Serde deserializer. Read more
Formats the value using the given formatter. Read more
Extracts Self from the source PyObject.
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
Performs the conversion.
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
Serialize this value into the given Serde serializer. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Compare self to key and return true if they are equal.

Returns the argument unchanged.

Calls U::from(self).

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

Arguments for exception
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
Converts the given value to a String. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.