pub fn shuffle(
b: &RecordBatch,
columns: &[String],
vnodes: u32,
targets: &[(u32, Range<u32>)],
hasher: &(dyn Fn(&[Arc<dyn Array>], &mut [u64]) + Send + Sync),
) -> Vec<Option<RecordBatch>>Expand description
Split a batch by vnode: hash(columns) % vnodes → the target whose range holds it. Returns one
optional sub-batch per target, in target order. Missing routing columns hash as null.