開始
用戶指南
管理指南
參考指南
資源
2022年9月13日更新
給我們反饋
Databricks有三個執行不同任務的REST api:
2.0而且2.1一般行政管理
1.2直接在數據庫上運行命令
有關所有REST api的最新版本,請參見REST API(最新).你也可以直接跳轉到每個版本的REST API主頁:2.1,2.0,或1.2.
重要的
要訪問Databricks的REST api,您必須進行身份驗證.
賬戶API2.0
集群API2.0
集群政策API2.0
Databricks SQL查詢和儀表板API2.0
Databricks SQL查詢曆史API2.0
Databricks SQL倉庫API2.0
DBFS API2.0
Delta Live Tables API2.0
Git憑證API2.0
全局初始化腳本API2.0
組API2.0
實例池API2.0
實例配置文件API2.0
IP訪問列表API2.0
喬布斯API2.1,2.0
庫API2.0
MLflow API2.0
權限API2.0
回購API2.0
SCIM API2.0
秘密的API2.0
令牌API2.0
令牌管理API2.0
統一目錄API2.1,2.0
工作區API2.0
API1.2
有關REST API身份驗證的信息,請參見使用Databricks個人訪問令牌進行身份驗證.有關API示例,請參見API的例子.
為了確保高負載下的高質量服務,Databricks對所有REST API調用實施了速率限製。為每個端點和每個工作空間設置限製,以確保公平使用和高可用性。
超過速率限製的請求返回一個429響應狀態碼.
有關API請求速率限製的信息,請參見API率限製.
解析JSON輸出的部分內容是很有用的。Databricks推薦使用該實用程序金橋解析JSON。你可以安裝金橋在Linux上通過金橋版本,在macOS上使用Homebrew with釀造安裝金橋,或在Windows上使用Chocolatey with喬科省安裝金橋.如欲了解更多有關金橋,請參閱金橋手冊.
金橋
釀造安裝金橋
喬科省安裝金橋
此示例列出指定工作區中可用集群的名稱和id。此示例使用. netrc文件.
curl——netrc -X GET https://abc-d1e2345f-a6b2.cloud.www.eheci.com/api/2.0/clusters/list\|金橋'[.clusters[] | {id: .cluster_id, name: .cluster_name}]'
[{“id”:“1234 - 567890 batch123”,"name": "My Cluster 1"},{“id”:“2345 - 678901 rigs234”,"name": "My Cluster 2"}]
相同API版本的響應不會從JSON輸出中刪除任何字段。然而,API可能會在JSON輸出中添加新字段,而不增加API版本。您的編程工作流必須意識到這些添加並忽略未知字段。
一些字符串字段(包含用於UI使用的錯誤和描述性消息)是非結構化的,您不應該在編程工作流中依賴於這些字段的格式。
字符串
旋度是一種用於在服務器之間傳輸數據的流行工具。本節提供關於使用curl調用Databricks REST API的具體信息。
雖然大多數API調用要求您指定JSON主體,但for得到調用您可以通過在後麵追加查詢字符串來指定查詢字符串?並在URL周圍加引號。如果你使用旋度,您可以指定——得到(或- g),——數據(或- d)以及查詢字符串;您不需要將URL或查詢字符串用引號括起來。
得到
?
旋度
——得到
- g
——數據
- d
在下麵的例子中,替換abc-d1e2345f-a6b2.cloud.www.eheci.com與工作空間的URL您的Databricks部署。
abc-d1e2345f-a6b2.cloud.www.eheci.com
這個示例打印關於指定集群的信息。此示例使用. netrc文件.
使用?:
curl——netrc“https://abc d1e2345f a6b2.cloud.www.eheci.com/api/2.0/clusters/get?cluster_id=1234 - 567890 patch123”
使用——得到而且——數據:
curl——netrc\https://abc-d1e2345f-a6b2.cloud.www.eheci.com/api/2.0/clusters/get\——數據cluster_id=1234567890 - patch123
{“cluster_id”:“1234 - 567890 patch123”,“spark_context_id”:123456789012345678,“cluster_name”:“工作- 239 - 1”,:“spark_version 8.1.x-scala2.12”,...}
這個例子列出了DBFS根目錄的內容。此示例使用. netrc文件.
curl——netrc\https://abc-d1e2345f-a6b2.cloud.www.eheci.com/api/2.0/dbfs/list\——數據路徑=/
“文件”:[{“路徑”:“/ tmp”,“is_dir”:沒錯,“file_size”:0,“modification_time”:1547078156000},{“路徑”:“/ my_file.txt”,“is_dir”:假的,“file_size”:40歲“modification_time”:1541374426000},...]
要用Python調用Databricks REST API,可以使用磚CLI的包作為一個圖書館。這個包是用Python編寫的,它使您能夠通過緊密建模Databricks REST API請求和響應有效負載的Python類調用Databricks REST API。有關更多信息,請參見用Python調用Databricks REST API.
直接使用Python請求圖書館是另一種方法。但是,您需要在較低的級別上工作,手動提供必要的頭、處理錯誤和其他相關的低級編碼任務。
請求
請求是一個用Python發出HTTP請求的流行庫。此示例使用請求庫以列出有關指定Databricks集群的信息。此示例使用. netrc文件.
進口請求進口json即instance_id=“dbc-a1b2345c-d6e7.cloud.www.eheci.com”api_version=' / api / 2.0 'api_command=/集群/得到的url=f“https://{即instance_id} {api_version} {api_command}"參數個數={“cluster_id”:“1234 - 567890 batch123”}響應=請求.得到(url=url,參數個數=參數個數)打印(json.轉儲(json.加載(響應.文本),縮進=2))
{“cluster_id”:“1234 - 567890 batch123”,“spark_context_id”:1234567890123456789,...}
在郵遞員的應用,創建一個新的HTTP請求(文件>新>HTTP請求).
在HTTP謂詞下拉列表中,選擇與要調用的REST API操作相匹配的謂詞。例如,要列出Databricks集群的信息,請選擇得到.
為輸入請求URL,從進入https:// < databricks-instance-name >,在那裏< databricks-instance-name >是你的磚工作區實例名例如,dbc-a1b2345c-d6e7.cloud.www.eheci.com.
https:// < databricks-instance-name >
< databricks-instance-name >
dbc-a1b2345c-d6e7.cloud.www.eheci.com
使用與您想要調用的REST API操作相匹配的路徑完成請求URL。例如,要列出關於集群的信息,使用/ api / 2.0 /集群/.
/ api / 2.0 /集群/
在授權選項卡,類型列表中,選擇不記名的令牌.
為令牌,輸入您的Databricks個人訪問令牌。
提示
而不是進入工作區實例名例如,dbc-a1b2345c-d6e7.cloud.www.eheci.com和您的Databricks個人訪問令牌為每一個呼叫,您可以定義變量而且使用變量在郵遞員。
如果您想調用的REST API操作需要一個請求體,請執行以下操作:
在頭選項卡中,添加關鍵而且價值一雙內容類型以及REST API操作的可接受內容類型。例如,要列出關於集群的信息,可以使用的內容類型application / json.
內容類型
application / json
在身體選項卡,為REST API操作選擇可接受的主體類型。例如,要列出集群的信息,請選擇的主體類型生然後JSON.
輸入請求體。例如,要列出指定集群的信息,輸入如下信息:
{“cluster_id”:“1234 - 567890 batch123”}
如果您想調用的REST API操作需要任何附加標頭,請將它們作為附加標頭輸入關鍵而且價值對的頭選項卡。例如,要列出關於集群的信息,不需要額外的標頭。
如果您想調用的REST API操作需要任何查詢參數,請將它們輸入為關鍵而且價值對的參數個數選項卡。例如,要列出關於集群的信息,可以使用帶鍵的查詢參數,而不是使用請求主體cluster_id和指定集群ID的值,例如1234 - 567890 batch123.
cluster_id
1234 - 567890 batch123
點擊發送.任何回複細節將顯示在回複部分身體選項卡。
打開HTTPie桌麵應用程序,或者去HTTPie web應用程序.
在httpie.io /你好盒子,從輸入開始https:// < databricks-instance-name >,在那裏< databricks-instance-name >是你的磚工作區實例名例如,dbc-a1b2345c-d6e7.cloud.www.eheci.com.
在身份驗證選項卡上,單擊不記名的令牌.
而不是進入工作區實例名例如,dbc-a1b2345c-d6e7.cloud.www.eheci.com和您的Databricks個人訪問令牌為每個調用,您可以定義環境變量(例如DATABRICKS_HOST而且DATABRICKS_TOKEN),然後使用這些環境變量(例如{{DATABRICKS_HOST}}而且{{DATABRICKS_TOKEN}})。看到環境在http博客上。
DATABRICKS_HOST
DATABRICKS_TOKEN
{{DATABRICKS_HOST}}
{{DATABRICKS_TOKEN}}
在頭選項卡中,添加的名字而且價值一雙內容類型以及REST API操作的可接受內容類型。例如,要列出關於集群的信息,可以使用的內容類型application / json.
在身體選項卡,為REST API操作選擇可接受的主體類型。例如,要列出集群的信息,請選擇的主體類型文本然後JSON.
如果您想調用的REST API操作需要任何附加標頭,請將它們作為附加標頭輸入的名字而且價值對的頭選項卡。例如,要列出關於集群的信息,不需要額外的標頭。
如果您想調用的REST API操作需要任何查詢參數,請將它們輸入為的名字而且價值對的參數個數選項卡。例如,要列出關於集群的信息,可以使用名稱為的查詢參數,而不是使用請求主體cluster_id和指定集群ID的值,例如1234 - 567890 batch123.
點擊發送.所有響應細節將顯示在響應選項卡。
此示例使用HTTPie命令行界麵命令,列出指定Databricks集群的信息。此示例使用. netrc文件.
https得到dbc-a1b2345c-d6e7.cloud.www.eheci.com/api/2.0/clusters/getcluster_id=1234567890 - batch123#還是……https dbc-a1b2345c-d6e7.cloud.www.eheci.com/api/2.0/clusters/getcluster_id= =1234567890 - batch123#這相當於curl和jq…# curl——netrc 'https://abc-d1e2345f-a6b2.cloud.www.eheci.com/api/2.0/clusters/get' -d '{"cluster_id": "1234-567890-patch123"}' | jq。#還是……# curl——netrc 'https://abc-d1e2345f-a6b2.cloud.www.eheci.com/api/2.0/clusters/get?cluster_id=1234-567890-patch123' | jq。
您可以轉換旋度的工具轉換為http語法PyPI上的CurliPie包或者是CurliPie web應用程序.
此示例使用Invoke-RestMethodcmdlet在PowerShell命令,列出指定Databricks集群的信息。
美元的令牌=“dapia1b2345678901c23456defa7bcde8fa9”ConvertedToken美元=美元的令牌|ConvertTo-SecureString-AsPlainTextforceInstanceID美元=“dbc-d1e2345f-a6b2.cloud.www.eheci.com”APIVersion美元=' / api / 2.0 'APICommand美元=/集群/得到的美元的Uri=“https:// InstanceID APIVersion美元APICommand美元”美元的身體=@ {“cluster_id”=“1234 - 567890 batch123”}美元的反應=Invoke-RestMethod`身份驗證持票人`令牌ConvertedToken美元`方法得到`uri美元的Uri`身體美元的身體寫輸出美元的反應
cluster_id: 1234 - 567890 - batch123spark_context_id: 1234567890123456789...
許多API調用要求您指定磚運行時版本字符串。本節描述Databricks REST API中版本字符串的結構。
<米> . <F>。x[-cpu] [-esr] [-gpu] [-毫升] [-光子] [-hls]-scala<scala-版本>
在哪裏
米: Databricks Runtime主要版本
米
F: Databricks運行時特性版本
F
cpu: CPU版本號毫升唯一的)
cpu
毫升
esr:擴展支持
esr
gpu:GPU-enabled
gpu
毫升:機器學習
光子:光子
光子
hls:基因組學(棄用)
hls
scala版本:編譯Spark: 2.10、2.11、2.12時使用的Scala版本
scala版本
例如:
7.6.x-gpu-ml-scala2.12代表Databricks運行時7.6 for Machine Learning,支持gpu,使用Scala 2.12版本編譯Spark 3.0.1版本
7.6.x-gpu-ml-scala2.12
的支持Databricks運行時版本和支持計劃而且不支持的版本表將Databricks運行時版本映射到運行時中包含的Spark版本。
方法可以獲得可用Databricks運行時版本字符串的列表運行時版本API。
apache-火花.<米> . <F>。x-scala<scala-版本>
米: Apache Spark主版本
F: Apache Spark特性版本
scala版本:編譯Spark: 2.10或2.11時使用的Scala版本
例如,apache-spark-2.4.x-scala2.11.
apache-spark-2.4.x-scala2.11