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

如何用PySpark读取S3中指定月份的全部分区数据

读取S3分区存储中整个月份的PySpark DataFrame方法

这里有几种直接读取2023年6月全部分区数据的方式,无需合并多个DataFrame:

方法1:使用通配符匹配路径

直接在路径中用*匹配6月的所有日期分区,Spark会自动加载所有符合条件的路径数据:

df = spark.read.text("s3://mydata/date=2023-06-*")

*会匹配2023-06-开头的所有子路径,也就是6月的所有日期分区。

方法2:利用分区列过滤(推荐,性能更优)

Spark会自动识别分区目录中的date=作为DataFrame的分区列,你可以先读取根目录,再通过条件过滤出6月的数据:

# 读取根目录,Spark自动识别date分区列
df = spark.read.text("s3://mydata/")
# 过滤2023年6月的所有数据
df = df.where((df.date >= "2023-06-01") & (df.date <= "2023-06-30"))

这种方式会触发谓词下推,Spark只会扫描符合日期条件的分区,不会读取其他月份的数据,性能比通配符更高效,尤其是数据量较大时。

方法3:使用pathGlobFilter选项

在读取时通过pathGlobFilter参数指定路径匹配规则,同样可以直接过滤出目标分区:

df = spark.read.option("pathGlobFilter", "date=2023-06-*").text("s3://mydata/")

这种方式和通配符类似,但可以更灵活地组合过滤规则,适合复杂路径场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 15:10:57