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

如何从Azure Databricks Python笔记本直存文件/截图到ADLS及最佳实践

直接将截图保存至ADLS的方法

首先需要明确:Selenium的save_screenshot方法仅支持本地文件系统路径,无法直接识别Databricks的分布式存储协议(如abfss://)。要实现一步保存,可通过以下两种方案:

方案1:挂载ADLS到DBFS本地路径

将ADLS容器挂载到DBFS的本地挂载点(如/mnt/adls),这样本地路径/dbfs/mnt/adls/直接映射到ADLS对应位置,无需额外迁移步骤:

  1. 完成ADLS挂载(若未挂载):
dbutils.fs.mount(
  source = "abfss://<container>@<storage-account>.dfs.core.windows.net/",
  mount_point = "/mnt/adls",
  extra_configs = {"fs.azure.account.key.<storage-account>.dfs.core.windows.net": "<access-key>"}
)
  1. 直接保存截图到挂载路径:
driver.save_screenshot('/dbfs/mnt/adls/test.png')

此路径会直接将截图写入ADLS容器,无需后续mv操作。

方案2:封装临时文件中转函数

若不想挂载,可封装一个函数,将截图先存到本地临时目录,再直接上传至ADLS,代码逻辑上实现“一步调用”:

import os

def save_screenshot_to_adls(driver, target_adls_path):
    # 临时本地路径
    temp_local_path = "/tmp/screenshot_temp.png"
    # 保存到本地临时文件
    driver.save_screenshot(temp_local_path)
    # 上传至ADLS
    dbutils.fs.cp(f"file:{temp_local_path}", target_adls_path)
    # 清理临时文件
    os.remove(temp_local_path)

# 调用示例
save_screenshot_to_adls(driver, "abfss://<container>@<storage-account>.dfs.core.windows.net/test.png")

Unity Catalog相关配置与最佳实践

DBFS根存储是Databricks托管的默认存储,无法直接替换为ADLS,但可通过Unity Catalog的外部位置(External Locations)实现统一路径管理,避免重复输入完整的abfss链接,具体方案及最佳实践如下:

核心配置步骤

  1. 创建存储凭据(Storage Credential):关联ADLS的访问密钥、服务主体或SAS令牌,作为Unity Catalog访问ADLS的身份凭证。
  2. 创建外部位置(External Location):基于存储凭据,指定ADLS的目标容器/路径(如abfss://<container>@<storage-account>.dfs.core.windows.net/),并为用户/组分配读写/只读权限。

配置完成后,可直接使用外部位置的路径进行文件操作,无需每次输入完整的存储账户和容器信息。

最佳实践

  • 优先使用外部位置管理业务数据:避免直接使用DBFS根存储,外部位置支持Unity Catalog的精细权限管控,且数据存储在您自己的ADLS账户中,备份、迁移更灵活。
  • 环境隔离:为开发、测试、生产环境分别创建独立的存储凭据和外部位置,防止不同环境的数据交叉污染。
  • 权限最小化:针对不同用户/组分配对应外部位置的最小必要权限(如只读权限给分析人员,读写权限给ETL开发),保障数据安全。
  • 设置默认工作路径:在笔记本中通过dbutils.fs.cd("<external-location-path>")设置默认路径,后续文件操作可使用相对路径,简化代码。
  • 避免硬编码路径:将外部位置路径定义为笔记本参数或环境变量,便于后续维护和切换环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 19:25:23