【问题标题】:IoError("failed to fill whole buffer") when reading Apache Arrow IPC file in Rust在 Rust 中读取 Apache Arrow IPC 文件时 IoError(“无法填充整个缓冲区”)
【发布时间】:2021-02-19 18:20:18
【问题描述】:

我正在尝试将二进制 Arrow 文件读入 Rust,但我收到错误 IoError("failed to fill whole buffer")。我正在使用箭头 3。我知道可以使用 ipc::reader::FileReader,但在我的应用程序中,我实际上已经在内存中有数据。

use arrow::ipc;
use std::fs;

fn main() {
    println!("Length: {}", try_main().unwrap());
}

fn try_main() -> std::io::Result<usize> {
    let data = fs::read("flights-10k.arrow")?;

    println!("Size of the data: {}", data.len());

    let reader = ipc::reader::StreamReader::try_new(&data as &[u8]).unwrap();
    return Ok(reader.schema().fields().len());
}

在我的货物文件中

[dependencies]
arrow = "3.0.0"

【问题讨论】:

    标签: rust apache-arrow


    【解决方案1】:

    添加光标似乎可以让我改用文件阅读器。

    let cursor = Cursor::new(&data as &[u8]);
    let reader = ipc::reader::FileReader::try_new(cursor).unwrap();
    

    【讨论】:

      猜你喜欢
      • 2013-09-19
      • 1970-01-01
      • 1970-01-01
      • 2012-02-04
      • 2012-10-04
      • 2020-09-14
      • 1970-01-01
      • 1970-01-01
      • 2014-05-11
      相关资源
      最近更新 更多