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

Synapse Spark如何正确写入已挂载的ADLS Gen2容器而非主存储?

解决Synapse Spark写入挂载ADLS Gen2容器的路径问题

你的问题出在:直接使用/devbronze/account作为写入路径时,Spark会默认指向Synapse主存储的根目录,而非你通过mssparkutils.fs.mount挂载的容器。以下是几种可行的解决方法:

方法1:用DBFS前缀访问挂载点

挂载后的路径需要通过dbfs:/前缀来标识,这样Spark才能识别到这是挂载的外部存储,而非主存储路径。修改写入代码:

df.write.format("delta").mode("overwrite").save("dbfs:/devbronze/account")

方法2:直接使用ABFSS路径写入

无需依赖挂载操作,直接指定目标ADLS Gen2容器的完整ABFSS路径,这种方式更直接,避免挂载路径的混淆:

df.write.format("delta").mode("overwrite").save("abfss://devbronze@dlsdataxxxxdirdev001.dfs.core.windows.net/account")

方法3:规范挂载路径(推荐)

Synapse中通常将挂载点命名为/mnt/xxx格式,避免与主存储的路径冲突。先重新挂载容器:

mssparkutils.fs.mount(
    "abfss://devbronze@dlsdataxxxxdirdev001.dfs.core.windows.net",
    "/mnt/devbronze",
    { "linkedService":"LS_synapsews" }
)

然后用规范路径写入:

df.write.format("delta").mode("overwrite").save("dbfs:/mnt/devbronze/account")

验证挂载有效性

执行以下命令确认挂载是否成功,若能列出devbronze容器内的内容,说明挂载正常:

mssparkutils.fs.ls("/devbronze")  # 若用方法3则替换为"/mnt/devbronze"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 04:00:34