rust - 在 Rust 中读取 Apache Arrow IPC 文件时出现 IoError(“无法填充整个缓冲区”)
问题描述
我正在尝试将二进制箭头文件读入 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"
解决方案
添加光标似乎允许我使用文件阅读器。
let cursor = Cursor::new(&data as &[u8]);
let reader = ipc::reader::FileReader::try_new(cursor).unwrap();
推荐阅读
- node.js - 在端口中运行时如何终止快速进程
- drupal-7 - 安装模块 H5P 后我收到消息和白屏 - 网站遇到错误,请稍后再试
- vba - 如何在 Microsoft Word 的 VBA 中使用特殊字符?
- django - 如何使用 Django 通过 Postman 或 Rest API 框架在 MySql 数据库中插入(添加)JSON 数据?
- python - 迁移 Django 模型时如何解决错误?
- json - PowerShell 中路径的 Visual Studio Code tasks.json 问题
- javascript - 在 Chrome 中为用户 Android 桌面上安装的网络应用启用音频自动播放
- flutter - 如何传递 voidcallback
- api - 从 Alpha Vantage API 获取 NSE 的期权数据
- typo3 - 如何在typo3中添加滑块