Struct arrow::array::StructArray
source · pub struct StructArray { /* private fields */ }
Expand description
A nested array type where each child (called field) is represented by a separate array.
Example: Create an array from a vector of fields
use std::sync::Arc;
use arrow_array::{Array, ArrayRef, BooleanArray, Int32Array, StructArray};
use arrow_schema::{DataType, Field};
let boolean = Arc::new(BooleanArray::from(vec![false, false, true, true]));
let int = Arc::new(Int32Array::from(vec![42, 28, 19, 31]));
let struct_array = StructArray::from(vec![
(
Field::new("b", DataType::Boolean, false),
boolean.clone() as ArrayRef,
),
(
Field::new("c", DataType::Int32, false),
int.clone() as ArrayRef,
),
]);
assert_eq!(struct_array.column(0).as_ref(), boolean.as_ref());
assert_eq!(struct_array.column(1).as_ref(), int.as_ref());
assert_eq!(4, struct_array.len());
assert_eq!(0, struct_array.null_count());
assert_eq!(0, struct_array.offset());
Implementations§
source§impl StructArray
impl StructArray
sourcepub fn num_columns(&self) -> usize
pub fn num_columns(&self) -> usize
Return the number of fields in this struct array
sourcepub fn columns_ref(&self) -> Vec<Arc<dyn Array + 'static>, Global> ⓘ
👎Deprecated: Use columns().to_vec()
pub fn columns_ref(&self) -> Vec<Arc<dyn Array + 'static>, Global> ⓘ
Returns child array refs of the struct array
sourcepub fn column_by_name(
&self,
column_name: &str
) -> Option<&Arc<dyn Array + 'static>>
pub fn column_by_name(
&self,
column_name: &str
) -> Option<&Arc<dyn Array + 'static>>
Return child array whose field name equals to column_name
Note: A schema can currently have duplicate field names, in which case the first field will always be selected. This issue will be addressed in ARROW-11178
Trait Implementations§
source§impl Array for StructArray
impl Array for StructArray
source§fn data_ref(&self) -> &ArrayData
fn data_ref(&self) -> &ArrayData
source§fn slice(&self, offset: usize, length: usize) -> Arc<dyn Array + 'static>
fn slice(&self, offset: usize, length: usize) -> Arc<dyn Array + 'static>
source§fn offset(&self) -> usize
fn offset(&self) -> usize
0
. Read moresource§fn is_null(&self, index: usize) -> bool
fn is_null(&self, index: usize) -> bool
index
is null.
When using this function on a slice, the index is relative to the slice. Read moresource§fn is_valid(&self, index: usize) -> bool
fn is_valid(&self, index: usize) -> bool
index
is not null.
When using this function on a slice, the index is relative to the slice. Read moresource§fn null_count(&self) -> usize
fn null_count(&self) -> usize
source§fn get_buffer_memory_size(&self) -> usize
fn get_buffer_memory_size(&self) -> usize
source§fn get_array_memory_size(&self) -> usize
fn get_array_memory_size(&self) -> usize
get_buffer_memory_size()
and
includes the overhead of the data structures that contain the pointers to the various buffers.source§impl Clone for StructArray
impl Clone for StructArray
source§fn clone(&self) -> StructArray
fn clone(&self) -> StructArray
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for StructArray
impl Debug for StructArray
source§impl From<&StructArray> for RecordBatch
impl From<&StructArray> for RecordBatch
source§fn from(struct_array: &StructArray) -> RecordBatch
fn from(struct_array: &StructArray) -> RecordBatch
Create a record batch from struct array, where each field of
the StructArray
becomes a Field
in the schema.
This currently does not flatten and nested struct types
source§impl From<ArrayData> for StructArray
impl From<ArrayData> for StructArray
source§fn from(data: ArrayData) -> StructArray
fn from(data: ArrayData) -> StructArray
source§impl From<RecordBatch> for StructArray
impl From<RecordBatch> for StructArray
source§fn from(batch: RecordBatch) -> StructArray
fn from(batch: RecordBatch) -> StructArray
source§impl From<StructArray> for ArrayData
impl From<StructArray> for ArrayData
source§fn from(array: StructArray) -> ArrayData
fn from(array: StructArray) -> ArrayData
source§impl Index<&str> for StructArray
impl Index<&str> for StructArray
source§fn index(&self, name: &str) -> &<StructArray as Index<&str>>::Output
fn index(&self, name: &str) -> &<StructArray as Index<&str>>::Output
Get a reference to a column’s array by name.
Note: A schema can currently have duplicate field names, in which case the first field will always be selected. This issue will be addressed in ARROW-11178
Panics
Panics if the name is not in the schema.
source§impl PartialEq<StructArray> for StructArray
impl PartialEq<StructArray> for StructArray
source§fn eq(&self, other: &StructArray) -> bool
fn eq(&self, other: &StructArray) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl TryFrom<Vec<(&str, Arc<dyn Array + 'static>), Global>> for StructArray
impl TryFrom<Vec<(&str, Arc<dyn Array + 'static>), Global>> for StructArray
source§fn try_from(
values: Vec<(&str, Arc<dyn Array + 'static>), Global>
) -> Result<StructArray, ArrowError>
fn try_from(
values: Vec<(&str, Arc<dyn Array + 'static>), Global>
) -> Result<StructArray, ArrowError>
builds a StructArray from a vector of names and arrays. This errors if the values have a different length. An entry is set to Null when all values are null.