用途:说明如何在 Polars 中读写远程对象存储上的数据,包括 S3、GCS、Azure 及本地 file:// 协议。
主要能力:原生云访问基于 Rust object_store,可直接用 pl.read_parquet("s3://bucket/data/file.parquet")、pl.read_csv 等读取 gs://、az:// 等 URI;pl.scan_parquet 支持惰性扫描与谓词、列下推。写入可用 df.write_parquet("s3://bucket/output/data.parquet"),分区写入通过 write_parquet(..., partition_by=["year","month"], use_pyarrow=True) 实现 Hive 风格分区。还可经 fsspec 打开文件(fs.open 配合 pl.read_csv),或用 simplecache:: 前缀做缓存;PyArrow 路线用 pyarrow.fs 构造文件系统、ds.dataset 加载分区数据集,再经 pl.scan_pyarrow_dataset 转为惰性帧并查询。
认证:原生访问沿用环境变量与默认凭据链,如 AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、~/.aws/credentials、IAM 角色;GCP 的 GOOGLE_APPLICATION_CREDENTIALS、gcloud CLI;Azure 的 AZURE_STORAGE_ACCOUNT、AZURE_STORAGE_KEY、托管身份。需要显式凭据时改用 fsspec 或 PyArrow 构造器。
适用场景与限制:适合云上数据湖的读取、增量加载与跨云迁移。性能建议优先用原生 URI、惰性求值与分区写入。注意 Polars 不直接支持混合 URI,跨云复制需借助 PyArrow 桥接;复杂认证(SSO、临时凭据)与缓存应改用 fsspec 或 PyArrow。