Polars
Polars 是一个基于 OLAP 查询引擎之上的内存 DataFrame 库。它速度快、易于使用,并且是开源的。
从 1.2.0 版本开始,Polars 对 Hugging Face 文件系统提供了 native(原生)支持。这意味着 Polars 查询优化器的所有优势(例如谓词下推、列投影 下推等)都会生效,Polars 只会加载完成查询所必需的数据。对于大规模数据集,这会显著加快读取速度(参见优化相关文档)。
你可以使用 Hugging Face 的路径前缀(hf://)访问 Hub 上的数据:

Getting started(快速上手)
要开始使用,只需在你的环境中通过 pip install 安装 Polars:
pip install polars
安装完成后,你就可以直接基于 Hugging Face URL 查询数据集,不需要其它额外依赖:
import polars as pl
pl.read_parquet("hf://datasets/roneneldan/TinyStories/data/train-00000-of-00004-2d5a1467fff1081b.parquet")
提示
Polars 提供两套 API:lazy API(如 scan_parquet)和 eager API(如 read_parquet)。对于交互式工作负载,推荐使用 eager API;如果更关注性能,则推荐使用 lazy API,因为它允许进行更充分的查询优化。更多说明可以参考 Polars 用户指南。
Polars 支持使用通配(globbing)一次性读取多个文件,并合并为一个 DataFrame。
pl.read_parquet("hf://datasets/roneneldan/TinyStories/data/train-*.parquet")
Hugging Face URLs
Hugging Face URL 可以由 username 和 dataset 名称按如下方式构造:
hf://datasets/{username}/{dataset}/{path_to_file}
{path_to_file} 可以包含类似 **/*.parquet 的通配模式,以匹配并查询所有符合规则的文件。
此外,对于 Polars 尚不直接支持的文件格式,你可以使用 Hugging Face 自动转换生成的 Parquet 文件,即通过 @~parquet 分支来访问:
hf://datasets/{my-username}/{my-dataset}@~parquet/{path_to_file}