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

如何在Databricks的Python脚本中读取容器内Excel文件并导入Pandas

解决Databricks读取Excel文件的问题

一、修复Spark读取的ClassNotFoundException错误

错误根源是Spark原生不支持Excel格式,必须安装com.crealytics:spark-excel依赖包。

安装依赖的两种方式

  • 集群级安装:进入Databricks集群的「库」页面,点击「安装新库」,类型选「Maven」,填入坐标com.crealytics:spark-excel_2.12:0.14.0(注意匹配Spark版本,Spark 3.x对应Scala 2.12)
  • 笔记本临时安装:在笔记本开头执行:
    %pip install spark-excel
    

修正后的读取代码

import pyspark
import pandas as pd

# 替换为你的实际信息
storage_account_name = "你的存储账户名"
storage_account_access_key = "你的存储密钥"
filename = "wasbs://容器名@{storage_account_name}.blob.core.windows.net/目标文件路径.xls"

# 配置Azure存储访问权限
spark.conf.set(f'fs.azure.account.key.{storage_account_name}.blob.core.windows.net', storage_account_access_key)

# 读取Excel并转为Pandas DataFrame
spark_df = spark.read.format("com.crealytics.spark.excel") \
    .option("header", "true") \  # 若文件含表头则开启
    .option("inferSchema", "true") \  # 自动推断列数据类型
    .load(filename)

pandas_df = spark_df.toPandas()

二、直接用Pandas读取Blob存储文件的方案

若想跳过Spark直接用Pandas读取,需借助Azure存储SDK读取文件流:

步骤1:安装依赖

%pip install azure-storage-blob pandas xlrd openpyxl
  • xlrd用于读取.xls格式,openpyxl用于读取.xlsx格式

步骤2:读取代码示例

from azure.storage.blob import BlobServiceClient
import pandas as pd
import io

# 替换为你的实际信息
storage_account_name = "你的存储账户名"
storage_account_access_key = "你的存储密钥"
container_name = "你的容器名"
blob_file_path = "目标文件路径.xls"

# 初始化Blob客户端
blob_service_client = BlobServiceClient(
    account_url=f"https://{storage_account_name}.blob.core.windows.net",
    credential=storage_account_access_key
)
blob_client = blob_service_client.get_blob_client(container=container_name, blob=blob_file_path)

# 读取文件到内存流并转为Pandas DataFrame
file_stream = io.BytesIO(blob_client.download_blob().readall())
pandas_df = pd.read_excel(file_stream, engine="xlrd")  # 若为.xlsx则替换engine为"openpyxl"

三、关键注意事项

  • 权限验证:除了账户密钥,也可使用服务主体、托管身份等更安全的认证方式,避免密钥泄露
  • 文件大小:大文件优先用Spark读取后转Pandas,防止单节点内存溢出
  • 格式匹配:严格区分.xls和.xlsx,对应正确的读取引擎

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 14:13:11