Struct arrow_array::builder::PrimitiveDictionaryBuilder  
source · pub struct PrimitiveDictionaryBuilder<K, V>where
    K: ArrowPrimitiveType,
    V: ArrowPrimitiveType,{ /* private fields */ }Expand description
Array builder for DictionaryArray. For example to map a set of byte indices
to f32 values. Note that the use of a HashMap here will not scale to very large
arrays or result in an ordered dictionary.
Example:
let mut builder = PrimitiveDictionaryBuilder::<UInt8Type, UInt32Type>::new();
 builder.append(12345678).unwrap();
 builder.append_null();
 builder.append(22345678).unwrap();
 let array = builder.finish();
 assert_eq!(
     array.keys(),
     &UInt8Array::from(vec![Some(0), None, Some(1)])
 );
 // Values are polymorphic and so require a downcast.
 let av = array.values();
 let ava: &UInt32Array = av.as_any().downcast_ref::<UInt32Array>().unwrap();
 let avs: &[u32] = ava.values();
 assert!(!array.is_null(0));
 assert!(array.is_null(1));
 assert!(!array.is_null(2));
 assert_eq!(avs, &[12345678, 22345678]);Implementations§
source§impl<K, V> PrimitiveDictionaryBuilder<K, V>where
    K: ArrowPrimitiveType,
    V: ArrowPrimitiveType,
 
impl<K, V> PrimitiveDictionaryBuilder<K, V>where
    K: ArrowPrimitiveType,
    V: ArrowPrimitiveType,
sourcepub fn with_capacity(keys_capacity: usize, values_capacity: usize) -> Self
 
pub fn with_capacity(keys_capacity: usize, values_capacity: usize) -> Self
Creates a new PrimitiveDictionaryBuilder with the provided capacities
keys_capacity: the number of keys, i.e. length of array to build
values_capacity: the number of distinct dictionary values, i.e. size of dictionary
source§impl<K, V> PrimitiveDictionaryBuilder<K, V>where
    K: ArrowPrimitiveType,
    V: ArrowPrimitiveType,
 
impl<K, V> PrimitiveDictionaryBuilder<K, V>where
    K: ArrowPrimitiveType,
    V: ArrowPrimitiveType,
sourcepub fn append(&mut self, value: V::Native) -> Result<K::Native, ArrowError>
 
pub fn append(&mut self, value: V::Native) -> Result<K::Native, ArrowError>
Append a primitive value to the array. Return an existing index if already present in the values array or a new index if the value is appended to the values array.
sourcepub fn append_null(&mut self)
 
pub fn append_null(&mut self)
Appends a null slot into the builder
sourcepub fn finish(&mut self) -> DictionaryArray<K>
 
pub fn finish(&mut self) -> DictionaryArray<K>
Builds the DictionaryArray and reset this builder.
sourcepub fn finish_cloned(&self) -> DictionaryArray<K>
 
pub fn finish_cloned(&self) -> DictionaryArray<K>
Builds the DictionaryArray without resetting the builder.
Trait Implementations§
source§impl<K, V> ArrayBuilder for PrimitiveDictionaryBuilder<K, V>where
    K: ArrowPrimitiveType,
    V: ArrowPrimitiveType,
 
impl<K, V> ArrayBuilder for PrimitiveDictionaryBuilder<K, V>where
    K: ArrowPrimitiveType,
    V: ArrowPrimitiveType,
source§fn as_any_mut(&mut self) -> &mut dyn Any
 
fn as_any_mut(&mut self) -> &mut dyn Any
Returns the builder as an mutable Any reference.
source§fn finish_cloned(&self) -> ArrayRef
 
fn finish_cloned(&self) -> ArrayRef
Builds the array without resetting the builder.