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>>から読み込む。