(
schema: SchemaRef,
rng: &mut StdRng,
batch_size: usize,
batch_index: usize,
)
| 87 | } |
| 88 | |
| 89 | fn create_record_batch( |
| 90 | schema: SchemaRef, |
| 91 | rng: &mut StdRng, |
| 92 | batch_size: usize, |
| 93 | batch_index: usize, |
| 94 | ) -> RecordBatch { |
| 95 | // Randomly choose from 4 distinct key values; a higher number increases sparseness. |
| 96 | let key_suffixes = [0, 1, 2, 3]; |
| 97 | let keys = StringArray::from_iter_values( |
| 98 | (0..batch_size).map(|_| format!("hi{}", key_suffixes.choose(rng).unwrap())), |
| 99 | ); |
| 100 | |
| 101 | let values = create_data(rng, batch_size, 0.5); |
| 102 | |
| 103 | // Integer values between [0, u64::MAX]. |
| 104 | let integer_values_wide = (0..batch_size) |
| 105 | .map(|_| rng.random::<u64>()) |
| 106 | .collect::<Vec<_>>(); |
| 107 | |
| 108 | // Integer values between [0, 1000). |
| 109 | let integer_values_mid = (0..batch_size) |
| 110 | .map(|_| rng.random_range(0..1000)) |
| 111 | .collect::<Vec<_>>(); |
| 112 | |
| 113 | // Integer values between [0, 10). |
| 114 | let integer_values_narrow = (0..batch_size) |
| 115 | .map(|_| rng.random_range(0..10)) |
| 116 | .collect::<Vec<_>>(); |
| 117 | |
| 118 | let mut dict_builder = StringDictionaryBuilder::<Int32Type>::new(); |
| 119 | for _ in 0..batch_size { |
| 120 | if rng.random::<f64>() > 0.9 { |
| 121 | dict_builder.append_null(); |
| 122 | } else { |
| 123 | dict_builder.append_value(format!("market_{}", rng.random_range(0..10))); |
| 124 | } |
| 125 | } |
| 126 | |
| 127 | RecordBatch::try_new( |
| 128 | schema, |
| 129 | vec![ |
| 130 | Arc::new(keys), |
| 131 | Arc::new(Float32Array::from(vec![batch_index as f32; batch_size])), |
| 132 | Arc::new(Float64Array::from(values)), |
| 133 | Arc::new(UInt64Array::from(integer_values_wide)), |
| 134 | Arc::new(UInt64Array::from(integer_values_mid)), |
| 135 | Arc::new(UInt64Array::from(integer_values_narrow)), |
| 136 | Arc::new(dict_builder.finish()), |
| 137 | ], |
| 138 | ) |
| 139 | .unwrap() |
| 140 | } |
| 141 | |
| 142 | /// Create record batches of `partitions_len` partitions and `batch_size` for each batch, |
| 143 | /// with a total number of `array_len` records |
no test coverage detected
searching dependent graphs…