MCPcopy Create free account
hub / github.com/apache/datafusion / generate_data

Function generate_data

benchmarks/src/cancellation.rs:271–312  ·  view source on GitHub ↗
(
    data_dir: impl AsRef<Path>,
    num_files: usize,
    num_rows_per_file: usize,
)

Source from the content-addressed store, hash-verified

269}
270
271async fn generate_data(
272 data_dir: impl AsRef<Path>,
273 num_files: usize,
274 num_rows_per_file: usize,
275) -> Result<(), Box<dyn std::error::Error + Send + Sync + 'static>> {
276 let absolute = std::env::current_dir().unwrap().join(data_dir);
277 let store = Arc::new(object_store::local::LocalFileSystem::new_with_prefix(
278 absolute,
279 )?);
280
281 let columns = [
282 ("A", DataType::Float64),
283 ("B", DataType::Float64),
284 ("C", DataType::Float64),
285 ("D", DataType::Boolean),
286 ("E", DataType::Utf8),
287 ("F", DataType::Utf8),
288 ("G", DataType::Utf8),
289 ("H", DataType::Utf8),
290 ("I", DataType::Utf8),
291 ("J", DataType::Utf8),
292 ("K", DataType::Utf8),
293 ];
294
295 for file_num in 1..=num_files {
296 println!("Generating file {file_num} of {num_files}");
297 let data = columns.iter().map(|(column_name, column_type)| {
298 let column = random_data(column_type, num_rows_per_file);
299 (column_name, column)
300 });
301 let to_write = RecordBatch::try_from_iter(data).unwrap();
302 let path = object_store::path::Path::from(format!("{file_num}.parquet").as_str());
303 let object_store_writer = ParquetObjectWriter::new(Arc::clone(&store) as _, path);
304
305 let mut writer =
306 AsyncArrowWriter::try_new(object_store_writer, to_write.schema(), None)?;
307 writer.write(&to_write).await?;
308 writer.close().await?;
309 }
310
311 Ok(())
312}
313
314fn random_data(column_type: &DataType, rows: usize) -> Arc<dyn Array> {
315 let mut rng = rand::rng();

Callers 1

find_or_generate_filesFunction · 0.85

Calls 9

newFunction · 0.85
random_dataFunction · 0.85
closeMethod · 0.80
joinMethod · 0.45
mapMethod · 0.45
iterMethod · 0.45
as_strMethod · 0.45
schemaMethod · 0.45
writeMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…