Parquet 文件
加载或写入 Parquet
文件快如闪电。
Pandas
使用 PyArrow
(用于Apache Arrow
的Python
库)将Parquet
数据加载到内存,但不得不将数据复制到了Pandas
的内存空间中。
Polars
就没有这部分额外的内存开销,因为读取Parquet
时,Polars
会直接复制进Arrow
的内存空间,且始终使用这块内存。
读&写
df = pl.read_parquet("path.parquet")
df = pl.DataFrame({"foo": [1, 2, 3], "bar": [None, "bak", "baz"]})
df.write_parquet("path.parquet")
扫描
Polars允许你扫描Parquet
输入。扫描操作延迟了对文件的实际解析,并返回一个延迟计算的容器LazyFrame
。
df = pl.scan_parquet("path.parquet")
如果你想了解更多这样设计的精妙之处,请移步Polars
Optimizations这一章。