MCPcopy Create free account
hub / github.com/apache/arrow-rs / create_primitive_list_array

Function create_primitive_list_array

arrow/src/util/bench_util.rs:522–554  ·  view source on GitHub ↗

Create a List/LargeList Array of primitive values using a fixed seed See [`create_primitive_list_array_with_seed`] for details on arguments.

(
    size: usize,
    null_density: f32,
    list_null_density: f32,
    max_list_size: usize,
)

Source from the content-addressed store, hash-verified

520///
521/// See [`create_primitive_list_array_with_seed`] for details on arguments.
522pub fn create_primitive_list_array<O, T>(
523 size: usize,
524 null_density: f32,
525 list_null_density: f32,
526 max_list_size: usize,
527) -> GenericListArray<O>
528where
529 O: OffsetSizeTrait,
530 T: ArrowPrimitiveType,
531 StandardUniform: Distribution<T::Native>,
532{
533 let mut rng = seedable_rng();
534
535 let values = (0..size).map(|_| {
536 if rng.random::<f32>() < null_density {
537 None
538 } else {
539 let list_size = rng.random_range(0..=max_list_size);
540 let list_values: Vec<Option<T::Native>> = (0..list_size)
541 .map(|_| {
542 if rng.random::<f32>() < list_null_density {
543 None
544 } else {
545 Some(rng.random())
546 }
547 })
548 .collect();
549 Some(list_values)
550 }
551 });
552
553 GenericListArray::<O>::from_iter_primitive::<T, _, _>(values)
554}
555
556/// Create a ListViewArray of primitive values using a fixed seed
557///

Callers

nothing calls this directly

Calls 3

collectMethod · 0.80
randomMethod · 0.80
seedable_rngFunction · 0.70

Tested by

no test coverage detected