Azure Databricks笔记本调用GCP Vision API的JSON凭证配置问题
Azure Databricks中配置GCP Vision API凭证的正确方式
Databricks Workspace内的文件路径和集群本地可访问路径不通用,直接使用Workspace复制的路径会导致集群找不到凭证文件,以下是几种可行的解决方法:
方法1:使用DBFS路径(推荐)
- 将
credentials.json上传到Databricks文件系统(DBFS),例如路径为dbfs:/folder1/credentials.json - 在笔记本中设置环境变量时,需要将DBFS路径转换为集群本地可识别的格式(DBFS根目录对应集群的
/dbfs/),代码如下:
import os os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = '/dbfs/folder1/credentials.json'
方法2:将凭证文件附加到集群
- 进入Databricks控制台的集群配置页面,找到高级选项下的初始化脚本或库模块
- 上传本地的
credentials.json文件,将其挂载到集群的指定本地路径(如/databricks/driver/credentials.json) - 重启集群后,在笔记本中直接设置环境变量:
import os os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = '/databricks/driver/credentials.json'
方法3:直接读取凭证内容(无文件依赖)
如果不想处理文件路径问题,可以直接加载凭证文件的内容字符串,代码示例:
from google.oauth2 import service_account import json # 复制credentials.json内的完整内容到此处 credential_content = """ { "type": "service_account", "project_id": "你的项目ID", // 其余凭证字段... } """ credentials = service_account.Credentials.from_service_account_info(json.loads(credential_content)) from google.cloud import vision client = vision.ImageAnnotatorClient(credentials=credentials)
注意:此方法需妥善保管凭证内容,避免权限泄露。
内容的提问来源于stack exchange,提问作者lugger1
相关产品推荐
相关产品推荐

