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

如何将Azure Synapse Notebook生成的HTML报告保存到ADLS?

Azure Synapse中ProfileReport保存HTML到ADLS报错的排查方案

核心原因及解决方法

1. ProfileReport的to_file方法不原生支持ABFSS协议

ydata-profiling的to_file方法底层基于本地文件系统逻辑实现,无法直接识别ADLS的abfss://分布式存储协议,所以直接传入该路径会触发文件找不到的错误。

解决方式:
先将报告转为HTML字符串,再通过PySpark的分布式文件系统API写入ADLS:

# 生成报告的HTML字符串内容
html_content = report.to_html()
# 利用dbutils写入ADLS,支持覆盖已有文件
dbutils.fs.put("abfss://bronze@tests.dfs.core.windows.net/profile.html", html_content, overwrite=True)

或者先保存到Synapse本地临时路径,再复制到ADLS:

# 保存到本地临时目录
report.to_file("/tmp/profile.html")
# 复制临时文件到ADLS目标路径
dbutils.fs.cp("file:/tmp/profile.html", "abfss://bronze@tests.dfs.core.windows.net/profile.html", recurse=True)

2. 链接服务的权限或路径有效性问题

即使配置了链接服务,仍可能存在以下问题:

  • 当前Notebook的Spark会话权限不足,无法写入目标ADLS容器
  • 路径中的存储账户名、容器名有误(比如tests.dfs.core.windows.net是否正确,bronze容器是否存在)

验证及解决步骤:

  • 执行以下代码测试路径可访问性:
    dbutils.fs.ls("abfss://bronze@tests.dfs.core.windows.net/")
    
    若报错,说明路径无效或权限不足。
  • 确认Synapse工作区的托管身份(或服务主体)已被授予ADLS容器的Storage Blob Data Contributor角色,具备写入权限。

3. ABFSS路径格式校验

检查路径是否严格符合格式要求:abfss://<容器名>@<存储账户名>.dfs.core.windows.net/<文件路径>,避免文件名包含空格、特殊字符,防止解析异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 15:32:11