Skip to main content

transform_record_batches

Function transform_record_batches 

Source
pub fn transform_record_batches(
    batches: &[RecordBatch],
    target: &str,
    cols_to_drop: &[String],
    config: &TransformConfig,
) -> Result<RecordBatch, String>
Expand description

Chunked pipeline: preprocess passes, pair aggregation, then apply per batch.

§Example

use arrow::array::{Float32Array, StringArray};
use arrow::datatypes::{DataType, Field, Schema};
use arrow::record_batch::RecordBatch;
use napparent_tabular::{BinDepth, TransformConfig, transform_record_batches};
use std::sync::Arc;

let id = Arc::new(StringArray::from(vec!["a", "b"]));
let feat = Arc::new(Float32Array::from(vec![1.0_f32, 20.0]));
let target = Arc::new(Float32Array::from(vec![0.5_f32, 1.5]));
let schema = Arc::new(Schema::new(vec![
    Field::new("id", DataType::Utf8, false),
    Field::new("feat", DataType::Float32, false),
    Field::new("target", DataType::Float32, false),
]));
let batch = RecordBatch::try_new(schema, vec![id, feat, target]).unwrap();
let config = TransformConfig::new(BinDepth::new(4));
let out = transform_record_batches(&[batch], "target", &["target".into()], &config).unwrap();
assert_eq!(out.num_rows(), 2);