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

如何用Python在HTML报告中创建ADLS中CSV文件的可下载链接

ADLS CSV文件在Databricks HTML报告中添加下载链接的实现方案

为什么直接用abfss链接无效

浏览器不支持abfss://协议,这是Azure内部服务间的专属访问协议,只有Databricks等Azure服务能解析,普通浏览器无法识别,所以直接写在HTML里的链接无法触发下载。

两种可行实现方法

方法一:生成临时SAS访问链接(推荐)

通过生成带权限的临时SAS URL,让浏览器能直接访问ADLS文件:

  1. 在Databricks Notebook中用Python生成SAS令牌和下载链接
    from azure.storage.filedatalake import DataLakeServiceClient
    from datetime import datetime, timedelta
    
    # 替换为你的ADLS配置信息
    account_name = "testingZone"
    account_key = "你的ADLS账户密钥" # 也可使用服务主体认证替代
    file_system = "testingZone"
    file_path = "Test/Input/TestData.csv"
    
    # 初始化ADLS服务客户端
    service_client = DataLakeServiceClient(
        account_url=f"https://{account_name}.dfs.core.windows.net",
        credential=account_key
    )
    file_client = service_client.get_file_system_client(file_system).get_file_client(file_path)
    
    # 生成1小时有效期的只读SAS令牌
    sas_token = file_client.generate_shared_access_signature(
        permission="r",
        expiry=datetime.utcnow() + timedelta(hours=1)
    )
    
    # 拼接可直接下载的公开URL
    download_url = f"https://{account_name}.dfs.core.windows.net/{file_system}/{file_path}?{sas_token}"
    
  2. 把生成的download_url嵌入HTML报告,用displayHTML()渲染
    html_report = f"""
    <html>
      <body>
        <h2>数据报告</h2>
        <p>原始数据下载:</p>
        <a href='{download_url}' target="_blank" download="TestData.csv">点击下载CSV文件</a>
      </body>
    </html>
    """
    displayHTML(html_report)
    

方法二:通过Databricks临时存储转发

如果不想暴露ADLS的SAS链接,可以把文件转到Databricks临时存储再提供下载:

# 读取ADLS中的CSV文件
df = spark.read.csv("abfss://testingZone@testingZone.dfs.core.windows.net/Test/Input/TestData.csv", header=True)
# 保存到Databricks本地临时目录
temp_path = "/tmp/TestData.csv"
df.toPandas().to_csv(temp_path, index=False)

# 生成HTML下载链接
html_report = f"""
<html>
  <body>
    <h2>数据报告</h2>
    <a href="files{temp_path}" download="TestData.csv">下载CSV文件</a>
  </body>
</html>
"""
displayHTML(html_report)

注意事项

  • SAS令牌的权限和有效期要按需设置,避免权限过大或长期有效带来安全风险
  • 使用服务主体认证时,需给主体分配ADLS的Storage Blob Data Reader权限
  • 必须用Databricks的displayHTML()函数渲染报告,才能在Notebook中正常显示可点击链接

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 23:01:24