DBFS API 2.0

DBFS API是一个砖API,使得它的简单与不同的数据源进行交互,而无需每次读取一个文件包含您的凭据。看到砖文件系统(DBFS)是什么?为更多的信息。对于一个易于使用的命令行客户端DBFS API,明白了砖CLI的设置和文档

请注意

以确保高质量的服务负载较重的情况下,砖现在执行API DBFS API调用的速度限制。每个工作区,以确保公平用法限制集和高可用性。自动重试可以使用砖CLI 0.12.0及以上版本。我们建议所有客户切换到砖CLI的最新版本。

重要的

访问数据砖REST api,你必须进行身份验证

添加块

端点

HTTP方法

2.0 / dbfs / addblock

帖子

附加一块数据流输入指定的句柄。如果处理不存在,这个调用将抛出一个异常RESOURCE_DOES_NOT_EXIST。如果数据块超过1 MB,这叫会抛出一个异常MAX_BLOCK_SIZE_EXCEEDED。文件上传的典型工作流程是:

  1. 调用创建和处理。

  2. 使一个或多个addblock调用的处理。

  3. 调用关闭与处理。

例子

curl——netrc - x\https://dbc-a1b2345c-d6e7.cloud.www.neidfyre.com/api/2.0/dbfs/add-block\——数据”{“数据”:“SGVsbG8sIFdvcmxkIQ = =”,“处理”:1234567890123456}”
{}

请求结构

字段名

类型

描述

处理

INT64

在一个开放的流处理。这个字段是必需的。

数据

字节

base64编码数据添加到流中。这1 MB的限制。这个字段是必需的。

关闭

端点

HTTP方法

2.0 / dbfs /关闭

帖子

关闭指定的流输入处理。如果处理不存在,这叫抛出一个异常RESOURCE_DOES_NOT_EXIST。文件上传的典型工作流程是:

  1. 调用创建和处理。

  2. 使一个或多个addblock调用的处理。

  3. 调用关闭与处理。

例子

curl——netrc - x\https://dbc-a1b2345c-d6e7.cloud.www.neidfyre.com/api/2.0/dbfs/close\——数据“{“处理”:1234567890123456}”

如果调用成功,没有输出显示。

请求结构

字段名

类型

描述

处理

INT64

在一个开放的流处理。这个字段是必需的。

创建

端点

HTTP方法

2.0 / dbfs /创建

帖子

打开一个流写入一个文件,并返回一个处理流。有一个10分钟的闲置超时处理。如果一个文件或目录已经存在于给定的路径和覆盖设置为false,这叫抛出一个异常呢RESOURCE_ALREADY_EXISTS。文件上传的典型工作流程是:

  1. 调用创建和处理。

  2. 使一个或多个addblock调用的处理。

  3. 调用关闭与处理。

例子

curl——netrc - x\https://dbc-a1b2345c-d6e7.cloud.www.neidfyre.com/api/2.0/dbfs/create\——数据”{“路径”:“/ tmp / HelloWorld。txt”、“覆盖”:真}’
{“处理”:1234567890123456}

请求结构

字段名

类型

描述

路径

字符串

新文件的路径。应该是绝对的路径(例如DBFS路径/ mnt / my-file.txt)。这个字段是必需的。

覆盖

BOOL

标记,用于指定是否覆盖现有的文件或文件。

响应结构

字段名

类型

描述

处理

INT64

随后应传递到处理addblock关闭时调用通过一个流写入一个文件。

删除

端点

HTTP方法

2.0 / dbfs /删除

帖子

删除文件或目录(可选递归删除目录中的所有文件)。这个调用将抛出一个异常IO_ERROR如果路径是一个非空目录和递归是设置为false或其他类似的错误。

当你删除大量的文件,删除操作在增量。调用返回一个响应大约45秒后一条错误消息(503服务不可用),要求您重新调用删除操作直到完全删除的目录结构。例如:

{“error_code”:“PARTIAL_DELETE”,“消息”:“请求的操作删除324个文件。有多个文件。你必须让另一个请求删除更多。”}

对于删除超过10 k文件的操作,我们不鼓励使用DBFS REST API,但是建议你执行这样的操作在一个集群中,使用文件系统实用程序(dbutils.fs)dbutils.fs涵盖了DBFS REST API的功能范围,但从笔记本。运行这些操作使用笔记本提供更好的控制和可管理性,如选择性删除,有可能自动定期删除工作。

例子

curl——netrc - x\https://dbc-a1b2345c-d6e7.cloud.www.neidfyre.com/api/2.0/dbfs/delete\——数据”{“路径”:“/ tmp / HelloWorld。三种“}”
{}

请求结构

字段名

类型

描述

路径

字符串

删除文件或目录的路径。应该是绝对DBFS路径的路径(例如/ mnt / foo /)。这个字段是必需的。

递归

BOOL

是否递归删除目录的内容。删除空目录没有提供递归的旗帜。

获得地位

端点

HTTP方法

2.0 / dbfs /获得状态

得到

得到一个文件或目录的文件信息。如果文件或目录不存在,这个调用将抛出一个异常RESOURCE_DOES_NOT_EXIST

例子

curl——netrc - x\https://dbc-a1b2345c-d6e7.cloud.www.neidfyre.com/api/2.0/dbfs/get-status\——数据”{“路径”:“/ tmp / HelloWorld。三种“}”\|金桥。
{“路径”:“/ tmp / HelloWorld.txt”,“is_dir”:,“file_size”:13,“modification_time”:1622054945000}

请求结构

字段名

类型

描述

路径

字符串

文件或目录的路径。应该是绝对DBFS路径的路径(例如,/ mnt /文件夹/)。这个字段是必需的。

响应结构

字段名

类型

描述

路径

字符串

文件或目录的路径。

is_dir

BOOL

是否一个目录路径。

file_size

INT64

文件的长度,以字节为单位或零如果是一个目录的路径。

modification_time

INT64

最后一次,在时代毫秒,文件或目录被修改。

请注意:如果一个目录的请求AWS S3,这个值0

列表

端点

HTTP方法

2.0 / dbfs /列表

得到

列出一个目录的内容,或文件的详细信息。如果文件或目录不存在,这个调用将抛出一个异常RESOURCE_DOES_NOT_EXIST

当调用列表在大目录,列表操作将大约60秒后超时。我们强烈推荐使用列表只有在目录包含少于10 k文件,并阻止使用DBFS REST API超过10 k文件列表的操作。相反,我们建议您执行这样的操作在一个集群的环境中,使用文件系统实用程序(dbutils.fs)没有超时,它提供了相同的功能。

例子

curl——netrc - x\https://dbc-a1b2345c-d6e7.cloud.www.neidfyre.com/api/2.0/dbfs/list\——数据{“路径”:“/ tmp”}”\|金桥。
{“文件”:({“路径”:“/ tmp / HelloWorld.txt”,“is_dir”:,“file_size”:13,“modification_time”:1622054945000},{“…”}]}

请求结构

字段名

类型

描述

路径

字符串

文件或目录的路径。应该是绝对DBFS路径的路径(例如/ mnt / foo /)。这个字段是必需的。

响应结构

字段名

类型

描述

文件

一个数组的FileInfo

FileInfo列表描述目录或文件的内容。

mkdir

端点

HTTP方法

2.0 / dbfs / mkdir

帖子

创建给定目录和必要的父目录不存在。如果存在一个文件(不是一个目录)在任何前缀的输入路径,这个调用将抛出一个异常RESOURCE_ALREADY_EXISTS。如果这个操作失败可能已经成功制造出一些必要的父目录。

例子

curl——netrc - x\https://dbc-a1b2345c-d6e7.cloud.www.neidfyre.com/api/2.0/dbfs/mkdirs\——数据{“路径”:“/ tmp / my-new-dir“}”
{}

请求结构

字段名

类型

描述

路径

字符串

新目录的路径。应该是绝对DBFS路径的路径(例如,/ mnt /文件夹/)。这个字段是必需的。

移动

端点

HTTP方法

2.0 / dbfs /移动

帖子

一个文件从一个位置移动到另一个位置DBFS之内。如果源文件不存在,这叫抛出一个异常RESOURCE_DOES_NOT_EXIST。如果已经存在一个文件在目的地的路径,这个调用将抛出一个异常RESOURCE_ALREADY_EXISTS。如果给定的源路径是一个目录,这叫总是递归地移动所有的文件。

当移动大量文件时,API调用将大约60秒后超时,可能导致部分移动数据。因此,对于操作移动超过10 k文件,我们强烈反对使用DBFS REST API。相反,我们建议您执行这样的操作在一个集群的环境中,使用文件系统实用程序(dbutils.fs)从一个笔记本,它提供了相同的功能没有超时。

例子

curl——netrc - x\https://dbc-a1b2345c-d6e7.cloud.www.neidfyre.com/api/2.0/dbfs/move\——数据”{source_path”:“/ tmp / HelloWorld。txt”、“destination_path”:“/ tmp / my-new-dir / HelloWorld。三种“}”
{}

请求结构

字段名

类型

描述

source_path

字符串

源文件或目录的路径。应该是绝对DBFS路径的路径(例如,/ mnt / my-source-folder /)。这个字段是必需的。

destination_path

字符串

目标文件或目录的路径。应该是绝对DBFS路径的路径(例如,/ mnt / my-destination-folder /)。这个字段是必需的。

端点

HTTP方法

2.0 / dbfs /把

帖子

通过使用多部分表单上传文件。它主要用于流媒体上传,但是也可以使用作为一个方便的单一数据上传。

的数据量,可以通过使用内容参数是限于1 MB如果指定为一个字符串(MAX_BLOCK_SIZE_EXCEEDED如果超过)和2 GB的文件。

例子

上传本地文件命名HelloWorld.txt在本地目录/ tmp / HelloWorld.txt实例:

curl——netrc - x\https://dbc-a1b2345c-d6e7.cloud.www.neidfyre.com/api/2.0/dbfs/put\——形式内容=@HelloWorld.txt\——形式路径=“/ tmp / HelloWorld.txt”\——形式覆盖=真正的

上传的内容你好,世界!base64编码的字符串:

curl——netrc - x\https://dbc-a1b2345c-d6e7.cloud.www.neidfyre.com/api/2.0/dbfs/put\——数据”{“路径”:“/ tmp / HelloWorld。txt”、“内容”:“SGVsbG8sIFdvcmxkIQ = =”、“覆盖”:真正的}
{}

请求结构

字段名

类型

描述

路径

字符串

新文件的路径。应该是绝对DBFS路径的路径(例如/ mnt / foo /)。这个字段是必需的。

内容

字节

这个参数可能会缺席,而是将使用发布文件。

覆盖

BOOL

标记,用于指定是否覆盖现有的文件。

端点

HTTP方法

2.0 / dbfs /阅读

得到

返回文件的内容。如果文件不存在,这叫抛出一个异常RESOURCE_DOES_NOT_EXIST。如果是一个目录的路径,读取长度是负的,或者抵消是负的,这叫抛出一个异常INVALID_PARAMETER_VALUE。如果读取长度超过1 MB,这叫抛出一个异常MAX_READ_SIZE_EXCEEDED。如果抵消+长度超过在文件的字节数,直到文件读取内容。

例子

假设文件指定字符串的内容你好,世界!。一个抵消1和一个长度8返回base64编码的字符串ZWxsbywgV28 =当解码嗨,我们

curl——netrc - x\https://dbc-a1b2345c-d6e7.cloud.www.neidfyre.com/api/2.0/dbfs/read\——数据”{“路径”:“/ tmp / HelloWorld。txt”、“抵消”:1、“长度”:8}’\|金桥。
{“bytes_read”:8,“数据”:" ZWxsbywgV28 = "}

请求结构

字段名

类型

描述

路径

字符串

文件的路径。应该是绝对DBFS路径的路径(例如/ mnt / foo /)。这个字段是必需的。

抵消

INT64

读取字节抵消。

长度

INT64

读取的字节数从偏移量。这有1 MB的限制,默认值为0.5 MB。

响应结构

字段名

类型

描述

bytes_read

INT64

读取的字节数(可以小于长度如果我们结束的文件)。这是指在未编码的字节数(响应数据是base64编码的)版本。

数据

字节

base64编码内容文件的阅读。

数据结构

在本节中:

FileInfo

一个文件或目录的属性。

字段名

类型

描述

路径

字符串

文件或目录的路径。

is_dir

BOOL

是否一个目录路径。

file_size

INT64

文件的长度,以字节为单位或零如果是一个目录的路径。

modification_time

INT64

最后一次,在时代毫秒,文件或目录被修改。

请注意:如果一个目录的请求AWS S3,这个值0