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

Databricks无服务器环境下pd.read_excel加载Excel失败求助

解决Databricks无服务器环境下pd.read_excel无法访问DBFS文件的问题

核心原因

Databricks无服务器集群的DBFS FUSE实现和常规虚拟机集群不同,pandas的read_excel这类本地文件IO操作无法直接通过/dbfs/...路径访问挂载的存储文件,而Spark API(或dbutils)则能正常识别挂载路径。

可行解决方案

  • 方案1:通过dbutils读取字节流传给pandas
    利用dbutils的文件操作先读取Excel文件的字节内容,再用BytesIO包装后交给pd.read_excel处理:

    import pandas as pd
    from io import BytesIO
    
    # 读取DBFS上的Excel文件字节流
    with dbutils.fs.open('/mnt/folder/myExcel.xlsx', 'rb') as file_handle:
        excel_bytes = file_handle.read()
        df = pd.read_excel(BytesIO(excel_bytes))
    
  • 方案2:用Spark读取后转成pandas DataFrame
    借助Spark的Excel读取工具(需先安装依赖),利用Spark能正常访问挂载路径的特性读取文件,再转换为pandas DataFrame:

    # 安装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/folder/myExcel.xlsx")
    
    # 转换为pandas DataFrame
    df = spark_df.toPandas()
    
  • 额外排查点
    若上述方案仍无效,确认Data Lake Gen2中目标Excel文件的权限:无服务器集群使用的服务主体需拥有该文件的读取权限(虽然其他读写正常,但Excel文件可能有单独权限设置)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 12:12:09