DBFS API 2.0
DBFS API是一個Databricks API,它使與各種數據源的交互變得簡單,而不必在每次讀取文件時都包含您的憑據。看到什麼是數據庫文件係統(DBFS)?獲取更多信息。有關易於使用的DBFS API命令行客戶端,請參見數據庫命令行設置和文檔。
請注意
為了確保高負載下的高服務質量,Databricks現在對DBFS API調用實施API速率限製。為每個工作空間設置限製,以確保公平使用和高可用性。自動重試可以使用Databricks CLI 0.12.0及以上版本。我們建議所有客戶切換到最新的beplay体育app下载地址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://dbc-a1b2345c-d6e7.cloud.m.eheci.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 GET\https://dbc-a1b2345c-d6e7.cloud.m.eheci.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
在本地目錄中/ tmp / HelloWorld.txt
在實例中:
—netrc -X POST\https://dbc-a1b2345c-d6e7.cloud.m.eheci.com/api/2.0/dbfs/put\——形式內容=@HelloWorld.txt\——形式路徑=“/ tmp / HelloWorld.txt”\——形式覆蓋=真正的
上傳內容你好,世界!
作為base64編碼的字符串:
—netrc -X POST\https://dbc-a1b2345c-d6e7.cloud.m.eheci.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://dbc-a1b2345c-d6e7.cloud.m.eheci.com/api/2.0/dbfs/read\——數據”{“路徑”:“/ tmp / HelloWorld.txt”、“抵消”:1、“長度”:8}”\|金橋。
{“bytes_read”:8,“數據”:" ZWxsbywgV28 = "}