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

Azure Databricks:Pandas无法读取已挂载ADSL2中的存在文件

问题原因

dbutils.fs.ls操作的是Databricks文件系统(DBFS),而Pandas的pd.read_excel默认读取的是集群节点的本地文件系统,不是DBFS。你挂载的ADLS2路径/mnt/myMnt是DBFS上的挂载点,并非本地节点的路径,所以Pandas会报文件找不到的错误。

解决方法(无需额外迁移文件)

方法1:添加DBFS本地映射前缀

DBFS在集群节点的本地文件系统中有固定映射路径/dbfs,给原路径加上这个前缀,Pandas就能识别到文件:

import pandas as pd
# 路径前添加/dbfs前缀
path = "/dbfs/mnt/myMnt/20241007112914_Statistik_789760_0000_327086871111430.xlsx"
df_xl = pd.read_excel(path, engine="openpyxl")

这个方法最简单,且对集群所有节点有效。

方法2:复制文件到节点本地临时目录

把DBFS上的文件复制到节点本地的/tmp目录,再用Pandas读取:

import pandas as pd
import os

# 复制DBFS文件到本地/tmp
dbutils.fs.cp("/mnt/myMnt/20241007112914_Statistik_789760_0000_327086871111430.xlsx", "file:/tmp/temp_excel.xlsx")

# 读取本地文件
df_xl = pd.read_excel("/tmp/temp_excel.xlsx", engine="openpyxl")

# 读取完成后可删除临时文件(可选)
os.remove("/tmp/temp_excel.xlsx")

注意:本地临时目录仅对当前节点有效,适合单节点任务场景。

方法3:用Spark读取后转Pandas DataFrame

这是更贴合Databricks生态的方式,适合大文件的分布式读取:

# 先安装Spark Excel依赖(首次运行需要)
%pip install spark-excel

# 用Spark读取Excel文件
spark_df = spark.read.format("com.crealytics.spark.excel") \
    .option("header", "true") \
    .option("inferSchema", "true") \
    .load("/mnt/myMnt/20241007112914_Statistik_789760_0000_327086871111430.xlsx")

# 转换为Pandas DataFrame
df_xl = spark_df.toPandas()
关于“迁移到DBFS”的说明

你已经通过挂载操作把ADLS2的文件接入到DBFS的/mnt/myMnt路径下了,不需要额外迁移文件。DBFS本身就是Databricks的分布式文件系统,挂载后文件已可通过DBFS访问,只是Pandas无法直接识别DBFS原生路径,需要用上述方法处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 15:47:12