Struct arrow::datatypes::Schema [−][src]
pub struct Schema { /* fields omitted */ }
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.
Implementations
impl Schema
[src]
impl Schema
[src]pub fn empty() -> Self
[src]
Creates an empty Schema
pub fn new(fields: Vec<Field>) -> Self
[src]
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]);
pub const fn new_with_metadata(
fields: Vec<Field>,
metadata: HashMap<String, String>
) -> Self
[src]
fields: Vec<Field>,
metadata: HashMap<String, String>
) -> Self
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);
pub fn try_merge(schemas: impl IntoIterator<Item = Self>) -> Result<Self>
[src]
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), ]), );
pub const fn fields(&self) -> &Vec<Field>
[src]
Returns an immutable reference of the vector of Field
instances.
pub fn field(&self, i: usize) -> &Field
[src]
Returns an immutable reference of a specific Field
instance selected using an
offset within the internal fields
vector.
pub fn field_with_name(&self, name: &str) -> Result<&Field>
[src]
Returns an immutable reference of a specific Field
instance selected by name.
pub fn fields_with_dict_id(&self, dict_id: i64) -> Vec<&Field>
[src]
Returns a vector of immutable references to all Field
instances selected by
the dictionary ID they use.
pub fn index_of(&self, name: &str) -> Result<usize>
[src]
Find the index of the column with the given name.
pub const fn metadata(&self) -> &HashMap<String, String>
[src]
Returns an immutable reference to the Map of custom metadata key-value pairs.
pub fn column_with_name(&self, name: &str) -> Option<(usize, &Field)>
[src]
Look up a column by name and return a immutable reference to the column along with its index.
pub fn to_json(&self) -> Value
[src]
Generate a JSON representation of the Schema
.
pub fn from(json: &Value) -> Result<Self>
[src]
Parse a Schema
definition from a JSON representation.
pub fn contains(&self, other: &Schema) -> bool
[src]
Check to see if self
is a superset of other
schema. Here are the comparision rules:
self
andother
should contain the same number of fields- for every field
f
inother
, the field inself
with corresponding index should be a superset off
. - self.metadata is a superset of other.metadata
In other words, any record conforms to other
should also conform to self
.
Trait Implementations
impl<'de> Deserialize<'de> for Schema
[src]
impl<'de> Deserialize<'de> for Schema
[src]fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
__D: Deserializer<'de>,
impl StructuralEq for Schema
[src]
impl StructuralEq for Schema
[src]impl StructuralPartialEq for Schema
[src]
impl StructuralPartialEq for Schema
[src]Auto Trait Implementations
impl RefUnwindSafe for Schema
impl RefUnwindSafe for Schema
impl UnwindSafe for Schema
impl UnwindSafe for Schema
Blanket Implementations
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]impl<Q, K> Equivalent<K> for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]
impl<Q, K> Equivalent<K> for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]pub fn equivalent(&self, key: &K) -> bool
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,