Struct polars_arrow::array::DictionaryArray
source · pub struct DictionaryArray<K: DictionaryKey> { /* private fields */ }Expand description
An Array whose values are stored as indices. This Array is useful when the cardinality of
values is low compared to the length of the Array.
Safety
This struct guarantees that each item of DictionaryArray::keys is castable to usize and
its value is smaller than DictionaryArray::values.len(). In other words, you can safely
use unchecked calls to retrieve the values
Implementations§
source§impl<K: DictionaryKey> DictionaryArray<K>
impl<K: DictionaryKey> DictionaryArray<K>
sourcepub fn try_new(
data_type: ArrowDataType,
keys: PrimitiveArray<K>,
values: Box<dyn Array>
) -> PolarsResult<Self>
pub fn try_new( data_type: ArrowDataType, keys: PrimitiveArray<K>, values: Box<dyn Array> ) -> PolarsResult<Self>
Returns a new DictionaryArray.
Implementation
This function is O(N) where N is the length of keys
Errors
This function errors iff
- the
data_type’s logical type is not aDictionaryArray - the
data_type’s keys is not compatible withkeys - the
data_type’s values’s data_type is not equal withvalues.data_type() - any of the keys’s values is not represented in
usizeor is>= values.len()
sourcepub fn try_from_keys(
keys: PrimitiveArray<K>,
values: Box<dyn Array>
) -> PolarsResult<Self>
pub fn try_from_keys( keys: PrimitiveArray<K>, values: Box<dyn Array> ) -> PolarsResult<Self>
Returns a new DictionaryArray.
Implementation
This function is O(N) where N is the length of keys
Errors
This function errors iff
- any of the keys’s values is not represented in
usizeor is>= values.len()
sourcepub unsafe fn try_new_unchecked(
data_type: ArrowDataType,
keys: PrimitiveArray<K>,
values: Box<dyn Array>
) -> PolarsResult<Self>
pub unsafe fn try_new_unchecked( data_type: ArrowDataType, keys: PrimitiveArray<K>, values: Box<dyn Array> ) -> PolarsResult<Self>
Returns a new DictionaryArray.
Errors
This function errors iff
- the
data_type’s logical type is not aDictionaryArray - the
data_type’s keys is not compatible withkeys - the
data_type’s values’s data_type is not equal withvalues.data_type()
Safety
The caller must ensure that every keys’s values is represented in usize and is < values.len()
sourcepub fn new_empty(data_type: ArrowDataType) -> Self
pub fn new_empty(data_type: ArrowDataType) -> Self
Returns a new empty DictionaryArray.
sourcepub fn new_null(data_type: ArrowDataType, length: usize) -> Self
pub fn new_null(data_type: ArrowDataType, length: usize) -> Self
Returns an DictionaryArray whose all elements are null
sourcepub fn iter(
&self
) -> ZipValidity<Box<dyn Scalar>, DictionaryValuesIter<'_, K>, BitmapIter<'_>> ⓘ
pub fn iter( &self ) -> ZipValidity<Box<dyn Scalar>, DictionaryValuesIter<'_, K>, BitmapIter<'_>> ⓘ
Returns an iterator of Option<Box<dyn Scalar>>.
Implementation
This function will allocate a new Scalar per item and is usually not performant.
Consider calling keys_iter and values, downcasting values, and iterating over that.
sourcepub fn values_iter(&self) -> DictionaryValuesIter<'_, K>
pub fn values_iter(&self) -> DictionaryValuesIter<'_, K>
Returns an iterator of Box<dyn Scalar>
Implementation
This function will allocate a new Scalar per item and is usually not performant.
Consider calling keys_iter and values, downcasting values, and iterating over that.
sourcepub fn values_iter_typed<V: DictValue>(
&self
) -> PolarsResult<DictionaryValuesIterTyped<'_, K, V>>
pub fn values_iter_typed<V: DictValue>( &self ) -> PolarsResult<DictionaryValuesIterTyped<'_, K, V>>
Returns an iterator over the values [V::IterValue].
Panics
Panics if the keys of this DictionaryArray have any null types.
If they do DictionaryArray::iter_typed should be called
sourcepub fn iter_typed<V: DictValue>(
&self
) -> PolarsResult<ZipValidity<V::IterValue<'_>, DictionaryValuesIterTyped<'_, K, V>, BitmapIter<'_>>>
pub fn iter_typed<V: DictValue>( &self ) -> PolarsResult<ZipValidity<V::IterValue<'_>, DictionaryValuesIterTyped<'_, K, V>, BitmapIter<'_>>>
Returns an iterator over the optional values of Option<V::IterValue>.
Panics
This function panics if the values array
sourcepub fn data_type(&self) -> &ArrowDataType
pub fn data_type(&self) -> &ArrowDataType
Returns the ArrowDataType of this DictionaryArray
sourcepub fn is_ordered(&self) -> bool
pub fn is_ordered(&self) -> bool
Returns whether the values of this DictionaryArray are ordered
sourcepub unsafe fn slice_unchecked(&mut self, offset: usize, length: usize)
pub unsafe fn slice_unchecked(&mut self, offset: usize, length: usize)
sourcepub fn sliced(self, offset: usize, length: usize) -> Self
pub fn sliced(self, offset: usize, length: usize) -> Self
Returns this array sliced.
Implementation
This function is O(1).
Panics
iff offset + length > self.len().
sourcepub unsafe fn sliced_unchecked(self, offset: usize, length: usize) -> Self
pub unsafe fn sliced_unchecked(self, offset: usize, length: usize) -> Self
Returns this array sliced.
Implementation
This function is O(1).
Safety
The caller must ensure that offset + length <= self.len().
sourcepub fn with_validity(self, validity: Option<Bitmap>) -> Self
pub fn with_validity(self, validity: Option<Bitmap>) -> Self
Returns this DictionaryArray with a new validity.
Panic
This function panics iff validity.len() != self.len().
sourcepub fn set_validity(&mut self, validity: Option<Bitmap>)
pub fn set_validity(&mut self, validity: Option<Bitmap>)
Sets the validity of the keys of this DictionaryArray.
Panics
This function panics iff validity.len() != self.len().
sourcepub fn boxed(self) -> Box<dyn Array>
pub fn boxed(self) -> Box<dyn Array>
Boxes this array into a Box<dyn Array>.
sourcepub fn arced(self) -> Arc<dyn Array>
pub fn arced(self) -> Arc<dyn Array>
Arcs this array into a std::sync::Arc<dyn Array>.
sourcepub fn validity(&self) -> Option<&Bitmap>
pub fn validity(&self) -> Option<&Bitmap>
The optional validity. Equivalent to self.keys().validity().
sourcepub fn keys(&self) -> &PrimitiveArray<K>
pub fn keys(&self) -> &PrimitiveArray<K>
Returns the keys of the DictionaryArray. These keys can be used to fetch values
from values.
sourcepub fn keys_values_iter(&self) -> impl TrustedLen<Item = usize> + Clone + '_
pub fn keys_values_iter(&self) -> impl TrustedLen<Item = usize> + Clone + '_
Returns an iterator of the keys’ values of the DictionaryArray as usize
sourcepub fn keys_iter(&self) -> impl TrustedLen<Item = Option<usize>> + Clone + '_
pub fn keys_iter(&self) -> impl TrustedLen<Item = Option<usize>> + Clone + '_
Returns an iterator of the keys’ of the DictionaryArray as usize
sourcepub fn key_value(&self, index: usize) -> usize
pub fn key_value(&self, index: usize) -> usize
Returns the keys’ value of the DictionaryArray as usize
Panics
This function panics iff index >= self.len()
sourcepub fn values(&self) -> &Box<dyn Array>
pub fn values(&self) -> &Box<dyn Array>
Returns the values of the DictionaryArray.
sourcepub fn value(&self, index: usize) -> Box<dyn Scalar>
pub fn value(&self, index: usize) -> Box<dyn Scalar>
Returns the value of the DictionaryArray at position i.
Implementation
This function will allocate a new Scalar and is usually not performant.
Consider calling keys and values, downcasting values, and iterating over that.
Panic
This function panics iff index >= self.len()
Trait Implementations§
source§impl<K: DictionaryKey> Array for DictionaryArray<K>
impl<K: DictionaryKey> Array for DictionaryArray<K>
source§fn as_any(&self) -> &dyn Any
fn as_any(&self) -> &dyn Any
Any, which enables downcasting to concrete types.source§fn as_any_mut(&mut self) -> &mut dyn Any
fn as_any_mut(&mut self) -> &mut dyn Any
Any, which enables mutable downcasting to concrete types.source§fn len(&self) -> usize
fn len(&self) -> usize
Array. Every array has a length corresponding to the number of
elements (slots).source§fn data_type(&self) -> &ArrowDataType
fn data_type(&self) -> &ArrowDataType
ArrowDataType of the Array. In combination with Array::as_any, this can be
used to downcast trait objects (dyn Array) to concrete arrays.source§unsafe fn slice_unchecked(&mut self, offset: usize, length: usize)
unsafe fn slice_unchecked(&mut self, offset: usize, length: usize)
source§unsafe fn is_null_unchecked(&self, i: usize) -> bool
unsafe fn is_null_unchecked(&self, i: usize) -> bool
i is null. Read moresource§impl<K: DictionaryKey> Arrow2Arrow for DictionaryArray<K>
impl<K: DictionaryKey> Arrow2Arrow for DictionaryArray<K>
source§impl<K: Clone + DictionaryKey> Clone for DictionaryArray<K>
impl<K: Clone + DictionaryKey> Clone for DictionaryArray<K>
source§fn clone(&self) -> DictionaryArray<K>
fn clone(&self) -> DictionaryArray<K>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more