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

在Synapse Spark Scala Notebook中无法读取Blob Storage的CSV文件

解决Synapse Notebook读取非Data Lake Gen2 Blob存储CSV文件路径不存在问题

前置配置(Blob存储侧)

  • 进入目标Blob存储账户的「访问控制(IAM)」页面,为你使用的Synapse工作区托管标识分配存储Blob数据读取者角色,角色分配范围覆盖待读取的容器即可。
  • 若使用SAS令牌访问,直接在Blob存储的「共享访问签名」页面生成对应容器的读取权限SAS,需确保令牌有效期、允许的IP范围覆盖Synapse工作区的运行环境。

Synapse Notebook读取配置

方法1:使用工作区托管标识访问(推荐,无需维护密钥)

首先配置Spark访问权限:

# 替换为实际参数
storage_account_name = "你的Blob存储账户名"
tenant_id = "你的Azure租户ID"

# 配置托管标识访问规则
spark.conf.set(
    f"fs.azure.account.oauth.provider.type.{storage_account_name}.blob.core.windows.net",
    "org.apache.hadoop.fs.azurebfs.oauth2.AzureADAuthenticator"
)
spark.conf.set(
    f"fs.azure.account.oauth2.msi.tenant.{storage_account_name}.blob.core.windows.net",
    tenant_id
)

然后编写CSV读取代码:

# 替换为实际容器名、文件路径
container_name = "待读取的容器名"
csv_file_path = "子目录/xxx.csv"
full_path = f"wasbs://{container_name}@{storage_account_name}.blob.core.windows.net/{csv_file_path}"

# 读取CSV,可根据实际文件调整header、分隔符、编码等参数
df = spark.read.format("csv")\
    .option("header", "true")\
    .option("inferSchema", "true")\
    .option("encoding", "utf-8")\
    .load(full_path)

# 验证读取结果
df.show(5)

方法2:使用SAS令牌访问

# 替换为实际参数
storage_account_name = "你的Blob存储账户名"
container_name = "待读取的容器名"
# SAS令牌不要带开头的?符号
sas_token = "你生成的SAS令牌字符串"

# 配置SAS访问规则
spark.conf.set(
    f"fs.azure.sas.{container_name}.{storage_account_name}.blob.core.windows.net",
    sas_token
)

# 读取文件
full_path = f"wasbs://{container_name}@{storage_account_name}.blob.core.windows.net/子目录/xxx.csv"
df = spark.read.format("csv").option("header","true").load(full_path)
df.show(5)

常见问题排查

  • 路径协议错误:非Data Lake Gen2的Blob存储必须使用wasbs://作为路径前缀,使用abfss://会直接提示路径不存在
  • 权限未生效:IAM角色分配后最长需要15分钟同步,刚配置完成可以稍等后再测试
  • 路径拼写错误:Blob存储的文件路径大小写敏感,需要和实际存储的路径、文件名完全一致
  • SAS令牌错误:检查SAS是否有读取权限、是否已过期、IP限制是否包含Synapse工作区出站IP

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 08:15:06