You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Polars在S3上使用scan_parquet/scan_pyarrow_dataset无法实现流式连接

Polars流式连接S3分区Parquet数据集时无法下推谓词,全量加载内存

问题背景

我有一个存储在S3上的大型分区Parquet数据集,无法完全载入内存。希望借助Polars的懒加载和**流式连接(streaming join)**功能,基于另一个小数据集筛选出该大型数据集的子集进行处理,避免加载全量数据。

测试情况对比

  • 本地文件场景:使用scan_parquet或scan_pyarrow_dataset时,查询计划显示Polars会执行流式连接,谓词下推正常,仅加载符合条件的数据子集。
  • S3文件场景:将文件路径改为S3地址后,Polars会先将整个数据集载入内存再执行连接,查询计划显示为PYTHON SCAN,无法下推连接谓词。

我测试了三种实现方式:

  1. 扫描本地Parquet文件:符合预期,流式连接查询计划正常生成
  2. 扫描S3上的Parquet文件:无法实现谓词下推,触发全量数据加载
  3. 扫描S3上的PyArrow数据集并执行流式连接:同样无法下推连接谓词

已知限制与说明

  • 当前Polars的scan_parquet在S3上不支持谓词下推
  • 测试代码仅在Polars 0.18.3及以下版本可用,高版本存在scan_parquet读取S3的回归问题

内容的提问来源于stack exchange,提问作者bvdw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 10:24:56