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

使用PySpark读取目录中Excel文件时遇文件未找到错误求助

PySpark读取Excel文件报"文件未找到"的排查与解决

错误原因分析

  • 路径拼接错误:原代码中env_path和raw直接拼接会缺失斜杠,生成的路径变成dbfs:/mntdev/raw/work1/,这是无效路径,导致后续找不到目标目录。
  • 文件路径引用错误:dbutils.fs.ls()返回的是FileInfo对象列表,不是字符串,循环里的objects+file_name属于对象拼接错误,无法正确获取文件路径。

修正后的代码

env_path = 'dbfs:/mnt'
raw = 'dev/raw/work1'
# 正确拼接路径,确保各级目录间的斜杠存在
file_path = f"{env_path}/{raw}/"
# 获取目录下的文件/文件夹信息
objects = dbutils.fs.ls(file_path)

# 初始化空DataFrame用于合并多个Excel文件的结果(可选)
sample_df = None

for file_info in objects:
    if file_info.isFile():
        # 从FileInfo对象中提取单个文件的完整路径
        single_file_path = file_info.path
        # 读取Excel文件
        temp_df = spark.read.format("com.crealytics.spark.excel")\
            .option("header", "false")\
            .load(single_file_path)
        # 合并多个文件的结果
        if sample_df is None:
            sample_df = temp_df
        else:
            sample_df = sample_df.union(temp_df)

额外注意事项

  • 确保com.crealytics.spark.excel依赖已安装:Databricks环境若未预装,需在集群库中添加对应Maven依赖(groupId: com.crealytics, artifactId: spark-excel_2.12,版本需与Spark版本兼容)。
  • 验证目标路径的文件存在:执行dbutils.fs.ls(file_path)查看输出,确认目标Excel文件在目录列表中。
  • 检查权限:确保运行代码的账号拥有该DBFS目录的读取权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 02:50:56