S-JIS[2024-10-21] 変更履歴

arrow FileWriter構造体

RustarrowのFileWriterのメモ。


概要

FileWriter構造体を使って、ArrowのRecordBatchをファイルに出力することが出来る。


ファイルを出力する例

RecordBatchをファイルに出力する例。

use std::fs::File;

use arrow::{
    array::RecordBatch,
    error::ArrowError,
    ipc::writer::FileWriter,
};
fn write_file(batch: &RecordBatch) -> Result<(), ArrowError> {
    let file = File::create("example.arrow").unwrap();

    let mut writer = FileWriter::try_new(file, &batch.schema())?;
    writer.write(batch)?;
    writer.finish()?;

    Ok(())
}

ファイルを読み込む例


バイト列を出力する例

RecordBatchのバイト列を出力する例。

use std::io::Cursor;
fn write_bytes(batch: &RecordBatch) -> Result<Vec<u8>, ArrowError> {
    let mut cursor = Cursor::new(Vec::new());

    let mut writer = FileWriter::try_new(&mut cursor, &batch.schema())?;
    writer.write(batch)?;
    writer.finish()?;

    let bytes = cursor.into_inner();
    // println!("bytes={:?}", bytes);
    Ok(bytes)
}

Fileの代わりにCursor<Vec<u8>>に出力し、そこからVec<u8>を取り出す。

バイト列を読み込む例


arrowへ戻る / Rustへ戻る / 技術メモへ戻る
メールの送信先:ひしだま