Databricks DBFS Put API使用求助:JSON数据上传失败
解决Databricks /api/2.0/dbfs/put API上传JSON数据的问题
一、content字段的正确使用方式
/api/2.0/dbfs/put要求content字段的值必须是base64编码的二进制数据,直接传入原始JSON字符串会触发格式错误。操作步骤:
- 将目标JSON内容转换为base64编码字符串(Linux可使用
base64命令,Python用base64.b64encode()方法) - 把编码后的字符串填入
content字段,同时指定DBFS目标路径path和可选的overwrite参数(控制是否覆盖已存在文件)
示例curl请求:
# 先将JSON转base64,比如执行:echo '{"id": 1, "data": "sample"}' | base64 curl -X POST -H "Authorization: Bearer <你的Databricks令牌>" \ -d '{ "path": "/tmp/your-data.json", "overwrite": true, "content": "eyJpZCI6IDEsICJkYXRhIjogInNhbXBsZSJ9Cg==" }' https://<你的工作区域名>/api/2.0/dbfs/put
二、文件上传模式的使用细节
当不提供content字段时,API会接收multipart/form-data格式的文件上传,需满足以下要求:
- 请求的Content-Type设置为
multipart/form-data - 表单参数必须包含:
path:DBFS的目标文件路径file:本地JSON文件的二进制流(参数名必须是file)- 可选
overwrite:布尔值,控制是否覆盖已存在文件
示例curl请求:
curl -X POST -H "Authorization: Bearer <你的Databricks令牌>" \ -F "path=/tmp/uploaded-data.json" \ -F "overwrite=true" \ -F "file=@./local-json-file.json" https://<你的工作区域名>/api/2.0/dbfs/put
三、常见错误排查
- 格式错误:未对
content做base64编码,直接传入原始JSON,API会返回格式校验失败的错误 - 编码问题:base64编码过程中出现换行或字符损坏,导致API无法解析内容
- 参数错误:文件上传时未使用
file作为表单参数名,或者Content-Type未设为multipart/form-data - 权限问题:使用的令牌没有DBFS写入权限,需检查令牌的权限范围或工作区的访问控制设置
内容的提问来源于stack exchange,提问作者MathiasF
相关产品推荐
相关产品推荐

