DBFS API 2.0
DBFS API是一个Databricks API,它使与各种数据源的交互变得简单,而不必在每次读取文件时都包含您的凭据。看到什么是数据库文件系统(DBFS)?获取更多信息。有关易于使用的DBFS API命令行客户端,请参见数据库命令行设置和文档.
请注意
为了确保高负载下的高服务质量,Databricks现在对DBFS API调用实施API速率限制。为每个工作空间设置限制,以确保公平使用和高可用性。自动重试可以使用Databricks CLI 0.12.0及以上版本。我们建议所有客户切换到最新的Databricks CLI版本。
重要的
要访问Databricks REST api,必须进行身份验证.
添加块
端点 |
HTTP方法 |
---|---|
|
|
将数据块附加到输入句柄指定的流中。如果句柄不存在,此调用将抛出异常RESOURCE_DOES_NOT_EXIST
.如果数据块超过1mb,此调用将抛出异常MAX_BLOCK_SIZE_EXCEEDED
.文件上传的典型工作流是:
关闭
端点 |
HTTP方法 |
---|---|
|
|
关闭输入句柄指定的流。如果句柄不存在,则此调用抛出异常RESOURCE_DOES_NOT_EXIST
.文件上传的典型工作流是:
创建
端点 |
HTTP方法 |
---|---|
|
|
打开流以写入文件并返回此流的句柄。此句柄有10分钟的空闲超时。如果文件或目录已存在于给定路径和覆盖
设置为false时,此调用抛出异常RESOURCE_ALREADY_EXISTS
.文件上传的典型工作流是:
例子
—netrc -X POST\https://1234567890123456.7.gcp.www.neidfyre.com/api/2.0/dbfs/create\——数据'{"path": "/tmp/HelloWorld.txt", " override ": true}'
{“处理”:1234567890123456}
删除
端点 |
HTTP方法 |
---|---|
|
|
删除文件或目录(可选地递归删除目录中的所有文件)。这个调用会抛出一个异常IO_ERROR
如果路径是非空目录且递归设置为false或其他类似错误。
当删除大量文件时,删除操作以增量方式进行。调用在大约45秒后返回一个响应,其中包含一条错误消息(503 Service Unavailable),要求您重新调用删除操作,直到完全删除目录结构。例如:
{“error_code”:“PARTIAL_DELETE”,“消息”:"请求的操作已删除324个文件。还有更多剩余的文件。你必须再次请求删除更多。”}
对于删除超过10K文件的操作,我们不建议使用DBFS REST API,但建议您在集群上下文中执行此类操作,使用文件系统实用程序(dbutls .fs).dbutils.fs
涵盖了DBFS REST API的功能范围,但来自笔记本。使用笔记本运行这样的操作提供了更好的控制和可管理性,比如选择性删除,以及自动化定期删除作业的可能性。
获得地位
端点 |
HTTP方法 |
---|---|
|
|
获取文件或目录的文件信息。如果文件或目录不存在,则此调用将抛出异常RESOURCE_DOES_NOT_EXIST
.
列表
端点 |
HTTP方法 |
---|---|
|
|
列出目录的内容或文件的详细信息。如果文件或目录不存在,则此调用将抛出异常RESOURCE_DOES_NOT_EXIST
.
当调用列表
在大型目录中,列表
操作将在大约60秒后超时。我们强烈建议使用列表
仅在包含小于10K文件的目录上,并且不建议对列出超过10K文件的操作使用DBFS REST API。方法在集群上下文中执行此类操作文件系统实用程序(dbutls .fs),它提供了相同的功能而没有超时。
例子
—netrc -X POST\https://1234567890123456.7.gcp.www.neidfyre.com/api/2.0/dbfs/list\——数据'{"path": "/tmp"}'\|金桥。
{“文件”:[{“路径”:“/ tmp / HelloWorld.txt”,“is_dir”:假,“file_size”:13,“modification_time”:1622054945000},{“…”}]}
响应结构
字段名 |
类型 |
描述 |
---|---|---|
文件 |
的数组FileInfo |
描述目录或文件内容的FileInfo列表。 |
mkdir
端点 |
HTTP方法 |
---|---|
|
|
创建给定目录和必要的父目录(如果它们不存在)。如果在输入路径的任何前缀处存在文件(而不是目录),则此调用将抛出异常RESOURCE_ALREADY_EXISTS
.如果此操作失败,则可能已经成功创建了一些必要的父目录。
移动
端点 |
HTTP方法 |
---|---|
|
|
将文件从DBFS中的一个位置移动到另一个位置。如果源文件不存在,则此调用将抛出异常RESOURCE_DOES_NOT_EXIST
.如果目标路径中已经存在文件,则此调用将抛出异常RESOURCE_ALREADY_EXISTS
.如果给定的源路径是一个目录,这个调用总是递归地移动所有文件。
当移动大量文件时,API调用将在大约60秒后超时,可能导致部分移动的数据。因此,对于移动超过10K文件的操作,我们强烈反对使用DBFS REST API。方法在集群上下文中执行此类操作文件系统实用程序(dbutls .fs)从笔记本电脑,它提供了相同的功能,没有超时。
把
端点 |
HTTP方法 |
---|---|
|
|
通过使用多部分表单上传文件。它主要用于流上传,但也可以用作方便的数据上传的单一调用。
类可以传递的数据量内容
参数如果以字符串形式指定,则限制为1mb (MAX_BLOCK_SIZE_EXCEEDED
如果超过则抛出)和2 GB的文件。
例子
上传名为HelloWorld.txt
在当前目录下:
—netrc -X POST\https://1234567890123456.7.gcp.www.neidfyre.com/api/2.0/dbfs/put\——形式内容=@HelloWorld.txt\——形式路径=“/ tmp / HelloWorld.txt”\——形式覆盖=真正的
上传内容你好,世界!
作为base64编码的字符串:
—netrc -X POST\https://1234567890123456.7.gcp.www.neidfyre.com/api/2.0/dbfs/put\——数据'{"path": "/tmp/HelloWorld.txt", "contents": "SGVsbG8sIFdvcmxkIQ==", " override ": true}'
{}
读
端点 |
HTTP方法 |
---|---|
|
|
返回一个文件的内容。如果文件不存在,此调用将抛出异常RESOURCE_DOES_NOT_EXIST
.如果路径是目录,读取长度为负,或者偏移量为负,则此调用将引发异常INVALID_PARAMETER_VALUE
.如果读取长度超过1 MB,此调用将抛出异常MAX_READ_SIZE_EXCEEDED
.如果抵消+长度
超过文件中的字节数,读取内容直到文件结束。
例子
假设指定文件的内容是字符串你好,世界!
.一个抵消
的1
和一个长度
的8
返回base64编码的字符串ZWxsbywgV28 =
,解码后是嗨,我们
.
—netrc -X GET\https://1234567890123456.7.gcp.www.neidfyre.com/api/2.0/dbfs/read\——数据”{“路径”:“/ tmp / HelloWorld.txt”、“抵消”:1、“长度”:8}”\|金桥。
{“bytes_read”:8,“数据”:" ZWxsbywgV28 = "}