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

如何用Polars读取S3上按DATE_KEY分区的最新Parquet文件

使用Polars读取S3上最新DATE_KEY分区的Parquet文件

按文件夹名称降序排序完全可行。因为你的DATE_KEY采用YYYY-MM-DD格式,这种格式的字符串排序逻辑和日期的时间排序逻辑完全一致——降序排列后,第一个文件夹就是最新的日期分区。

实现步骤

1. 安装依赖

确保你已经安装了必要的包:

pip install polars s3fs

2. 列出并筛选最新的DATE_KEY分区路径

使用s3fs连接S3,列出目标目录下的所有分区文件夹,提取日期并排序:

import s3fs
import polars as pl

# 初始化S3文件系统
fs = s3fs.S3FileSystem()

# 替换为你的实际S3路径(格式:s3://bucket-name/dev/target/refined/STUDENTS.parquet/)
base_s3_path = "s3://your-bucket-name/dev/target/refined/STUDENTS.parquet/"

# 列出所有DATE_KEY分区文件夹
partition_folders = [path for path in fs.ls(base_s3_path) if "DATE_KEY=" in path]

# 按文件夹名称降序排序,取第一个(最新的分区)
latest_partition = sorted(partition_folders, reverse=True)[0]

3. 读取最新分区的Parquet文件到Polars DataFrame

直接使用Polars的read_parquet方法读取该路径下的所有Parquet文件:

df = pl.read_parquet(f"{latest_partition}/*.parquet", storage_options={"anon": False})

补充说明

  • 如果S3需要身份验证,确保环境变量中配置了AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY,也可以通过s3fs.S3FileSystem()的参数直接传入凭证。
  • 若分区数量较多,字符串排序的性能损耗可以忽略不计,操作成本极低。
  • 也可以将DATE_KEY转换为datetime类型后排序,但对于YYYY-MM-DD格式的字符串,直接排序结果与日期排序完全一致,无需额外转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 09:04:57