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

从Databricks Notebook向Azure Blob存储写入PDF文件的问题

用Databricks将网页PDF保存到Azure Blob存储容器指定文件夹的实现方案

完全可以通过Databricks实现这个需求,你当前代码报错[Errno 2] No such file or directory的原因是:Python内置的open()函数仅支持操作本地文件系统或Databricks的DBFS本地路径,无法直接识别Azure Blob存储的wasbs://格式URL。

下面提供两种可行的实现方式:

方式一:使用Azure Blob Storage Python SDK

这是最直接的方式,无需挂载存储,通过SDK直接操作Blob:

  1. 先安装依赖(在Databricks笔记本中运行):
%pip install azure-storage-blob
  1. 实现代码:
import requests
from azure.storage.blob import BlobServiceClient

# 网页PDF地址
testurl = 'https://www.testwebsite.com/test123.pdf'
# Blob存储连接字符串(从Azure门户获取)
conn_str = "你的Blob存储连接字符串"
# 目标容器名称
container_name = "containername"
# Blob中的目标路径(包含文件夹和文件名)
target_blob_path = "Test Folder/Test.pdf"

# 获取PDF内容
response = requests.get(testurl)
response.raise_for_status()  # 确保请求成功,避免处理无效内容

# 初始化Blob服务客户端
blob_service_client = BlobServiceClient.from_connection_string(conn_str)
# 获取容器客户端
container_client = blob_service_client.get_container_client(container_name)
# 上传内容到指定路径,overwrite=True表示覆盖已有文件
container_client.upload_blob(name=target_blob_path, data=response.content, overwrite=True)

方式二:挂载Blob存储到DBFS

将Blob容器挂载到Databricks的DBFS后,就可以像操作本地文件一样读写:

  1. 挂载Blob存储(运行一次即可,挂载状态会保留):
dbutils.fs.mount(
  source = "wasbs://containername@storage.blob.core.windows.net",
  mount_point = "/mnt/test_blob_mount",
  extra_configs = {"fs.azure.account.key.storage.blob.core.windows.net": "你的存储账户访问密钥"}
)
  1. 写入文件的代码:
import requests

testurl = 'https://www.testwebsite.com/test123.pdf'
response = requests.get(testurl)
response.raise_for_status()

# 写入挂载后的DBFS路径,对应Blob容器中的Test Folder/Test.pdf
with open('/dbfs/mnt/test_blob_mount/Test Folder/Test.pdf', 'wb') as f:
    f.write(response.content)

注意事项

  • 确保Databricks集群拥有访问Azure Blob存储的权限,生产环境建议使用Azure AD身份验证替代密钥/连接字符串,更安全
  • 处理大体积PDF时,建议使用分块上传方式,避免内存溢出
  • 如果目标文件夹不存在,两种方式都会自动创建,无需提前手动创建

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 03:33:12