Struct arrow_array::array::GenericListArray
source · pub struct GenericListArray<OffsetSize: OffsetSizeTrait> { /* private fields */ }
Expand description
An array of variable length arrays
See ListArray
and LargeListArray
`
See GenericListBuilder
for how to construct a GenericListArray
Implementations§
source§impl<OffsetSize: OffsetSizeTrait> GenericListArray<OffsetSize>
impl<OffsetSize: OffsetSizeTrait> GenericListArray<OffsetSize>
sourcepub const DATA_TYPE_CONSTRUCTOR: fn(_: FieldRef) -> DataType = _
pub const DATA_TYPE_CONSTRUCTOR: fn(_: FieldRef) -> DataType = _
The data type constructor of list array.
The input is the schema of the child array and
the output is the DataType
, List or LargeList.
sourcepub fn try_new(
field: FieldRef,
offsets: OffsetBuffer<OffsetSize>,
values: ArrayRef,
nulls: Option<NullBuffer>
) -> Result<Self, ArrowError>
pub fn try_new( field: FieldRef, offsets: OffsetBuffer<OffsetSize>, values: ArrayRef, nulls: Option<NullBuffer> ) -> Result<Self, ArrowError>
Create a new GenericListArray
from the provided parts
Errors
Errors if
offsets.len() - 1 != nulls.len()
offsets.last() > values.len()
!field.is_nullable() && values.null_count() != 0
field.data_type() != values.data_type()
sourcepub fn new(
field: FieldRef,
offsets: OffsetBuffer<OffsetSize>,
values: ArrayRef,
nulls: Option<NullBuffer>
) -> Self
pub fn new( field: FieldRef, offsets: OffsetBuffer<OffsetSize>, values: ArrayRef, nulls: Option<NullBuffer> ) -> Self
Create a new GenericListArray
from the provided parts
Panics
Panics if Self::try_new
returns an error
sourcepub fn new_null(field: FieldRef, len: usize) -> Self
pub fn new_null(field: FieldRef, len: usize) -> Self
Create a new GenericListArray
of length len
where all values are null
sourcepub fn into_parts(
self
) -> (FieldRef, OffsetBuffer<OffsetSize>, ArrayRef, Option<NullBuffer>)
pub fn into_parts( self ) -> (FieldRef, OffsetBuffer<OffsetSize>, ArrayRef, Option<NullBuffer>)
Deconstruct this array into its constituent parts
sourcepub fn offsets(&self) -> &OffsetBuffer<OffsetSize>
pub fn offsets(&self) -> &OffsetBuffer<OffsetSize>
Returns a reference to the offsets of this list
Unlike Self::value_offsets
this returns the OffsetBuffer
allowing for zero-copy cloning
sourcepub fn value_type(&self) -> DataType
pub fn value_type(&self) -> DataType
Returns a clone of the value type of this list.
sourcepub unsafe fn value_unchecked(&self, i: usize) -> ArrayRef
pub unsafe fn value_unchecked(&self, i: usize) -> ArrayRef
Returns ith value of this list array.
Safety
Caller must ensure that the index is within the array bounds
sourcepub fn value_offsets(&self) -> &[OffsetSize]
pub fn value_offsets(&self) -> &[OffsetSize]
Returns the offset values in the offsets buffer
sourcepub fn value_length(&self, i: usize) -> OffsetSize
pub fn value_length(&self, i: usize) -> OffsetSize
Returns the length for value at index i
.
sourcepub fn iter<'a>(&'a self) -> GenericListArrayIter<'a, OffsetSize>
pub fn iter<'a>(&'a self) -> GenericListArrayIter<'a, OffsetSize>
constructs a new iterator
sourcepub fn slice(&self, offset: usize, length: usize) -> Self
pub fn slice(&self, offset: usize, length: usize) -> Self
Returns a zero-copy slice of this array with the indicated offset and length.
sourcepub fn from_iter_primitive<T, P, I>(iter: I) -> Selfwhere
T: ArrowPrimitiveType,
P: IntoIterator<Item = Option<<T as ArrowPrimitiveType>::Native>>,
I: IntoIterator<Item = Option<P>>,
pub fn from_iter_primitive<T, P, I>(iter: I) -> Selfwhere T: ArrowPrimitiveType, P: IntoIterator<Item = Option<<T as ArrowPrimitiveType>::Native>>, I: IntoIterator<Item = Option<P>>,
Creates a GenericListArray
from an iterator of primitive values
Example
let data = vec![
Some(vec![Some(0), Some(1), Some(2)]),
None,
Some(vec![Some(3), None, Some(5)]),
Some(vec![Some(6), Some(7)]),
];
let list_array = ListArray::from_iter_primitive::<Int32Type, _, _>(data);
println!("{:?}", list_array);
Trait Implementations§
source§impl<OffsetSize: OffsetSizeTrait> Array for GenericListArray<OffsetSize>
impl<OffsetSize: OffsetSizeTrait> Array for GenericListArray<OffsetSize>
source§fn slice(&self, offset: usize, length: usize) -> ArrayRef
fn slice(&self, offset: usize, length: usize) -> ArrayRef
source§fn offset(&self) -> usize
fn offset(&self) -> usize
0
. Read moresource§fn nulls(&self) -> Option<&NullBuffer>
fn nulls(&self) -> Option<&NullBuffer>
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§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 more