serde_arrow

Function to_record_batch

source
pub fn to_record_batch<T: Serialize>(
    fields: &[FieldRef],
    items: &T,
) -> Result<RecordBatch>
Expand description

Build a record batch from the given items (requires one of the arrow-* features)

items should be given in the form a list of records (e.g., a vector of structs). To serialize items encoding single values consider the Items wrapper.

To build arrays record by record use ArrayBuilder.

Example:

use arrow::datatypes::FieldRef;
use serde::{Serialize, Deserialize};
use serde_arrow::schema::{SchemaLike, TracingOptions};

#[derive(Serialize, Deserialize)]
struct Record {
    a: Option<f32>,
    b: u64,
}

let items = vec![
    Record { a: Some(1.0), b: 2},
    // ...
];

let fields = Vec::<FieldRef>::from_type::<Record>(TracingOptions::default())?;
let record_batch = serde_arrow::to_record_batch(&fields, &items)?;

assert_eq!(record_batch.num_columns(), 2);
assert_eq!(record_batch.num_rows(), 1);