Spark读取Parquet文件提示路径不存在,但路径与挂载均正常
解决Spark读取Parquet文件时路径不存在的报错
试试这些排查和修复方法:
核对权限与用户上下文
运行Spark代码的用户可能没有/mnt/bronze路径的访问权限。在Databricks里执行dbutils.fs.ls("/mnt/bronze/SalesLT/Address/"),看能不能列出目标文件,以此验证权限是否正常。统一路径格式
代码里用的是/mnt/bronze/...,报错显示的是dbfs:/mnt/bronze/...,虽然通常这俩等价,但可以试试把代码里的路径改成完整DBFS格式再跑:input_path='dbfs:/mnt/bronze/SalesLT/Address/Address.parquet' df = spark.read.format('parquet').load(input_path)检查Parquet文件完整性
就算文件存在,也可能损坏或者不是标准Parquet格式。用dbutils.fs.head("/mnt/bronze/SalesLT/Address/Address.parquet")看文件头部,或者用Pandas之类的工具读一遍,确认文件没问题。重新挂载容器
之前的挂载可能失效了,重新执行挂载命令确认成功后再试。比如:dbutils.fs.mount( source = "wasbs://your-container@your-storage-account.blob.core.windows.net", mount_point = "/mnt/bronze", extra_configs = {"fs.azure.account.key.your-storage-account.blob.core.windows.net": "your-access-key"} )记得替换成你自己的存储账户信息。
排查集群存储配置
如果是集群环境,确认集群是否允许访问外部存储,有没有防火墙或网络策略挡住了集群和存储账户的连接。
内容的提问来源于stack exchange,提问作者Faiq khan
相关产品推荐
相关产品推荐

