FileReader構造体を使って、ArrowのRecordBatchをファイルから読み込むことが出来る。
RecordBatchをファイルから読み込む例。
use std::fs::File;
use arrow::{
array::RecordBatch,
error::ArrowError,
ipc::reader::FileReader,
};
fn read_file() -> Result<(), ArrowError> {
let file = File::open("example.arrow").unwrap();
let mut reader = FileReader::try_new(file, None)?;
while let Some(result) = reader.next() {
let batch = result?; // RecordBatch
println!("read {:?}", batch);
}
Ok(())
}
RecordBatchをバイト列から読み込む例。
use std::io::Cursor;
fn read_bytes(bytes: &Vec<u8>) -> Result<(), ArrowError> {
let cursor = Cursor::new(bytes);
let mut reader = FileReader::try_new(cursor, None)?;
while let Some(result) = reader.next() {
let batch = result?;
println!("read_bytes={:?}", batch);
}
Ok(())
}
Fileの代わりにCursor<&Vec<u8>>から読み込む。