如何在 PySpark 中高效读取嵌套目录下指定年份的 CSV 文件
利用PySpark通配符路径匹配,可高效读取嵌套目录下指定年份的CSV文件,无需手动遍历子目录。通过灵活路径表达式如`folder4[1-9]*/year=2023/*.csv`精准匹配,兼顾简洁性与分布式执行引擎兼容性,显著提升数据加载效率并简化代码,广泛应用于大数据处理场景。
很多数据工程师都会遇到这样的场景:文件按分区结构层层嵌套,比如 /folder1/.../folder4/folder4X/year=2023/*.csv,想一次性读入所有符合条件的CSV文件,却不想写一堆循环去遍历子目录。其实,PySpark 的通配符路径匹配功能,正好能干净利落地解决这个问题。
在大规模数据处理中,文件按分区结构组织是常态——比如按 Year=2023 这类子目录存放。手动遍历子目录不仅低效,还违背了Spark 声明式、分布式设计的初衷。PySpark 的 spark.read.csv() 原生支持 Hadoop 兼容文件系统的路径通配符(glob pattern),直接通过灵活的路径表达式就能批量匹配目标文件,无需任何循环。
下面直接给出几种推荐路径写法,按匹配精度从高到低排列,可以根据实际目录结构灵活选用。
精准匹配数字编号子目录(推荐用于结构明确的场景):
path = "/folder1/folder2/folder3/folder4/folder4[1-9]*/year=2023/*.csv" df = spark.read.option("header", "true").csv(path)这里
folder4[1-9]*可以匹配 folder41、folder42、folder410 等,有效避免误匹配 folder40(如果存在的话);末尾显式加上/*.csv更安全,确保只加载 CSV 文件。宽松匹配所有
folder4*子目录(通用性强):path = "/folder1/folder2/folder3/folder4/folder4*/year=2023/*.csv"
最简层级通配(适用于 folder4 下直接为年份目录,或子目录命名不规则):
path = "/folder1/folder2/folder3/folder4/*/year=2023/*.csv"
使用过程中有几个关键点需要留意:
- 路径通配符(
*、[1-9]、?)由底层文件系统(如 HDFS、S3A、本地文件系统)解析,不是 Shell 层面展开的,所以必须确保运行环境对目标存储支持 glob 操作。 - 如果 CSV 文件没有表头,一定要显式设置
.option("header", "false");如果包含引号或特殊分隔符,建议同步配置.option("quote", '"').option("escape", '"'),避免解析出错。 - 对于 S3 或云存储,路径需要使用
s3a://bucket-name/...格式,并确认已配置好对应的凭证与文件系统实现。 - 首次读取时 Spark 会执行路径解析(listStatus),如果目录极深或文件极多,可以启用
spark.sql.adaptive.enabled=true(Spark 3.2+)来加速元数据发现。
小结一下:善用通配符路径是 PySpark 批量读取分区数据的核心技巧——既能保持代码简洁,又完全兼容分布式执行引擎,是替代显式 for 循环的最佳实践。下次遇到类似场景,直接拿路径表达式试一下,往往比写循环快得多。
WPS Office是一款面向macOS用户的综合办公套件,将文字处理、电子表格、演示文稿、PDF工具、模板与云协作整合在同一应用中。它兼容常见Microsoft Office格式,支持Intel及Apple芯片Mac,基础功能可免费使用,
Shapr3D是一款面向工业设计、机械工程、建筑概念和三维打印工作流的CAD软件。Mac版采用Parasolid建模内核,支持草图约束、实体建模、工程图、可视化渲染及常见CAD格式交换,并可通过账户在多台设备之间同步项目。
REAPER是Cockos开发的数字音频工作站,提供多轨音频与MIDI录制、剪辑、处理、混音和母带制作工具。Mac版兼容Intel与Apple芯片,支持AU、VST、VST3、CLAP等插件格式,并提供高度可定制的工作流程。
AutoCAD 是 Autodesk 推出的专业计算机辅助设计软件,Windows 版支持精确二维绘图、三维实体与曲面建模、图纸标注、布局发布和任务自动化,并包含多套行业专业化工具组合,适用于建筑、机械、电气、工程建设及制造设计人员。
SketchUp Pro 是面向建筑、室内、景观、施工和产品设计等专业场景的三维建模工具,提供桌面建模、LayOut 二维文档、模型资源库、扩展程序及云端协作能力。其操作逻辑直观,适合从概念推敲、空间规划到图纸表达和方案汇报的完整工作流程。
AutoCAD LT 是 Autodesk 推出的专业二维 CAD 软件,适合建筑师、工程师、施工人员和设计师完成精确绘图、标注及文档编制。它支持 DWG 工作流、智能块、图形比较、计数、表格和 AutoLISP 自动化,













