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

使用Scala读取Azure Blob Storage文件报错求助

问题分析与解决
  • 核心错误:dbutils.fs.mount的source参数指向了单个CSV文件,而mount操作仅支持挂载容器或容器内的目录,不能直接挂载单个文件,这是Scala代码执行失败的关键原因。
  • 修正后的Scala代码:
val containerName = "azsqlshackcontainer"
val storageAccountName = "cloudshell162958911"
val sas = "?sv=2021-06-08&ss=bfqt&srt=sco&sp=rwdlacupiyx&se=2022-11-16T17:11:59Z&st=2022-11-16T09:11:59Z&spr=https&sig=ZAy5PeZu5jbICr5B%2BFTLLn6C5TMBxrU5WmbLCRfzNu8%3D"
val config = "fs.azure.sas." + containerName + "." + storageAccountName + ".blob.core.windows.net"

// 挂载整个容器,而非单个文件
dbutils.fs.mount(
  source = s"wasbs://$containerName@$storageAccountName.blob.core.windows.net/",
  mountPoint = "/mnt/myfile",
  extraConfigs = Map(config -> sas)
)

// 挂载完成后读取目标CSV文件
val df = spark.read.csv("/mnt/myfile/FoodSales.csv")
df.show()
  • 补充说明:
    1. 若只需挂载容器内的特定目录,可将source修改为s"wasbs://$containerName@$storageAccountName.blob.core.windows.net/目标目录路径"
    2. 若无需持久化挂载,也可直接通过SAS路径读取文件,跳过mount步骤:
val df = spark.read.csv(s"wasbs://$containerName@$storageAccountName.blob.core.windows.net/FoodSales.csv?$sas")
df.show()
  1. 确认SAS令牌权限(sp=rwdlacupiyx)已覆盖挂载及文件读取所需操作,避免因权限不足导致异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 20:20:28