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

Python调用Databricks API下载文件遇AttributeError错误求助

问题解决:Databricks文件下载报错 'str' object has no attribute 'absolute_path'

问题详情

执行从Databricks复制数据到本地的Python代码时触发错误,代码及错误信息如下:

原代码

import os

from databricks_cli.sdk.api_client import ApiClient
from databricks_cli.dbfs.api import DbfsApi
from databricks_cli.dbfs.dbfs_path import DbfsPath

api_client = ApiClient(host  = r"https://azuredatabricks.net/?o=XXXX",token = "121314141")


dbfs_source_file_path      = 'dbfs:/FileStore/datafilename.csv'
local_file_download_path   = 'C:/world.txt'

dbfs_api  = DbfsApi(api_client)
dbfs_path = DbfsPath(dbfs_source_file_path)

# 下载文件到本地
dbfs_api.get_file(dbfs_source_file_path,local_file_download_path,overwrite = True)

错误信息

AttributeError: 'str' object has no attribute 'absolute_path'

问题原因

你已经创建了DbfsPath实例,但调用get_file时传入的仍是字符串格式的路径。部分版本的databricks-cli要求get_file的第一个参数必须是DbfsPath对象,而非字符串。

解决方案

修改get_file调用,传入已创建的dbfs_path对象代替字符串路径:

# 替换原下载代码行
dbfs_api.get_file(dbfs_path, local_file_download_path, overwrite=True)

完整修正后的代码:

import os

from databricks_cli.sdk.api_client import ApiClient
from databricks_cli.dbfs.api import DbfsApi
from databricks_cli.dbfs.dbfs_path import DbfsPath

api_client = ApiClient(host  = r"https://azuredatabricks.net/?o=XXXX",token = "121314141")


dbfs_source_file_path      = 'dbfs:/FileStore/datafilename.csv'
local_file_download_path   = 'C:/world.txt'

dbfs_api  = DbfsApi(api_client)
dbfs_path = DbfsPath(dbfs_source_file_path)

# 修正后的下载调用
dbfs_api.get_file(dbfs_path, local_file_download_path, overwrite = True)

补充说明

官方文档可能存在版本适配偏差,部分新版本的databricks-cli对参数类型做了严格限制,必须传入DbfsPath对象而非字符串路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 06:40:20