使用Secret Scopes从Azure存储账户读取数据至Databricks失败求助
正确读取Azure Blob存储中Excel文件的方案
关键修正要点
- Secret Scope名称:必须使用创建时的
emailscontainerstorage,而非之前误写的emailstorageaccount - Blob存储域名:普通Blob存储应使用
blob.core.windows.net,dfs.core.windows.net仅适用于ADLS Gen2存储
Scala 实现代码
// 替换为你的存储账户名和容器名 val storageAccountName = "你的存储账户名" val containerName = "你的容器名" // 正确获取存储密钥 val accessKey = dbutils.secrets.get(scope = "emailscontainerstorage", key = "claveaccesso") // 配置Spark访问Blob存储 spark.conf.set( s"fs.azure.account.key.$storageAccountName.blob.core.windows.net", accessKey ) // 读取Excel文件(需确保集群已安装spark-excel库) val df = spark.read .format("com.crealytics.spark.excel") .option("header", "true") // 按需调整是否读取表头 .option("inferSchema", "true") .load(s"wasbs://$containerName@$storageAccountName.blob.core.windows.net/文件路径/文件名.xlsx") // 验证读取结果 df.show()
Python 实现代码
# 替换为你的存储账户名和容器名 storage_account_name = "你的存储账户名" container_name = "你的容器名" # 正确获取存储密钥 access_key = dbutils.secrets.get(scope="emailscontainerstorage", key="claveaccesso") # 配置Spark访问Blob存储 spark.conf.set( f"fs.azure.account.key.{storage_account_name}.blob.core.windows.net", access_key ) # 读取Excel文件(需确保集群已安装spark-excel库) df = spark.read.format("com.crealytics.spark.excel") \ .option("header", "true") \ .option("inferSchema", "true") \ .load(f"wasbs://{container_name}@{storage_account_name}.blob.core.windows.net/文件路径/文件名.xlsx") # 验证读取结果 df.display()
额外注意事项
- 需在Databricks集群中安装Excel处理依赖库,例如
com.crealytics:spark-excel_2.12:0.14.0(版本需匹配集群Spark版本) - 若使用ADLS Gen2存储,才需切换为
dfs.core.windows.net域名,且需对应调整身份验证方式(如OAuth、SAS令牌)
内容的提问来源于stack exchange,提问作者gallo2000sv
相关产品推荐
相关产品推荐

