是否可以直接从内存中加载 Parquet 数据?
Is it possible to load Parquet data directly from memory?
我有一个用例,我会将 Parquet 数据直接下载到内存中(而不是 到文件系统中)。是否可以从 Vec<u8>
将这些文件作为(惰性)数据帧加载?而不是传递路径?
是的,您可以:
use polars::prelude::*;
use std::io::Cursor;
fn main() -> Result<()> {
let mut df = df![
"a" => [1, 2, 3]
]?;
// write to buffer
let mut buf = vec![];
ParquetWriter::new(&mut buf).finish(&mut df)?;
// read from buffer
let reader = Cursor::new(&buf);
let result = ParquetReader::new(reader).finish()?;
// validate result
df.frame_equal(&result);
Ok(())
}
我有一个用例,我会将 Parquet 数据直接下载到内存中(而不是 到文件系统中)。是否可以从 Vec<u8>
将这些文件作为(惰性)数据帧加载?而不是传递路径?
是的,您可以:
use polars::prelude::*;
use std::io::Cursor;
fn main() -> Result<()> {
let mut df = df![
"a" => [1, 2, 3]
]?;
// write to buffer
let mut buf = vec![];
ParquetWriter::new(&mut buf).finish(&mut df)?;
// read from buffer
let reader = Cursor::new(&buf);
let result = ParquetReader::new(reader).finish()?;
// validate result
df.frame_equal(&result);
Ok(())
}