开始
加载和管理数据
处理数据
政府
参考和资源
2023年1月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
数据沿袭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
Unity Catalog 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.neidfyre.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可能会在不增加API版本的情况下向JSON输出添加新字段。您的编程工作流必须知道这些新增的内容,并忽略未知字段。
一些字符串字段(包含错误和用于UI的描述性消息传递)是非结构化的,您不应该在编程式工作流中依赖这些字段的格式。
字符串
旋度是一种用于在服务器之间传输数据的流行工具。本节提供有关使用curl调用Databricks REST API的具体信息。
虽然大多数API调用都要求指定JSON主体,但对于得到调用可以通过在后面追加查询字符串来指定查询字符串?并将URL用引号括起来。如果你使用旋度,您可以指定——得到(或- g),——数据(或- d)连同查询字符串;您不需要将URL或查询字符串括在引号中。
得到
?
旋度
——得到
- g
——数据
- d
在以下示例中,请使用replaceabc-d1e2345f-a6b2.cloud.www.neidfyre.com与工作空间的URL您的Databricks部署。
abc-d1e2345f-a6b2.cloud.www.neidfyre.com
此示例打印指定集群的信息。本例使用. netrc文件.
使用?:
curl——netrc“https://abc d1e2345f a6b2.cloud.www.neidfyre.com/api/2.0/clusters/get?cluster_id=1234 - 567890 patch123”
使用——得到而且——数据:
Curl—netrc—get\https://abc-d1e2345f-a6b2.cloud.www.neidfyre.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—get\https://abc-d1e2345f-a6b2.cloud.www.neidfyre.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,可以使用Databricks命令行包作为一个图书馆。这个包是用Python编写的,允许您通过Python类调用Databricks REST API,这些类紧密模拟Databricks REST API请求和响应有效负载。有关更多信息,请参见使用Python调用Databricks REST API.
直接使用Python请求图书馆是另一种方法。但是,您需要在较低的级别上工作,手动提供必要的标头、处理错误和其他相关的低级编码任务。
请求
请求是一个流行的库,用于在Python中进行HTTP请求。本例使用请求library列出有关指定Databricks集群的信息。本例使用. netrc文件.
进口请求进口json即instance_id=“dbc-a1b2345c-d6e7.cloud.www.neidfyre.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.neidfyre.com.
https:// < databricks-instance-name >
< databricks-instance-name >
dbc-a1b2345c-d6e7.cloud.www.neidfyre.com
使用与要调用的REST API操作匹配的路径完成请求URL。例如,要列出关于集群的信息,使用/ api / 2.0 /集群/.
/ api / 2.0 /集群/
在授权选项卡,在类型列表中,选择不记名的令牌.
为令牌,为您的工作空间用户输入Databricks个人访问令牌。
提示
而不是进入工作空间实例名称例如,dbc-a1b2345c-d6e7.cloud.www.neidfyre.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.neidfyre.com.
在身份验证选项卡上,单击不记名的令牌.
而不是进入工作空间实例名称例如,dbc-a1b2345c-d6e7.cloud.www.neidfyre.com和您的Databricks个人访问令牌为您的工作区用户为每次调用,您可以定义环境变量(例如DATABRICKS_HOST而且DATABRICKS_TOKEN),然后使用这些环境变量(例如{{DATABRICKS_HOST}}而且{{DATABRICKS_TOKEN}})在HTTPie中代替。看到环境在HTTPie博客上。
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 GET dbc-a1b2345c-d6e7.cloud.www.neidfyre.com/api/2.0/clusters/getcluster_id=1234567890 - batch123#还是……https dbc-a1b2345c-d6e7.cloud.www.neidfyre.com/api/2.0/clusters/getcluster_id= =1234567890 - batch123#相当于curl和jq…# curl——netrc 'https://abc-d1e2345f-a6b2.cloud.www.neidfyre.com/api/2.0/clusters/get' -d '{"cluster_id": "1234-567890-patch123"}' | jq . net '#还是……# curl—netrc 'https://abc-d1e2345f-a6b2.cloud.www.neidfyre.com/api/2.0/clusters/get?cluster_id=1234-567890-patch123' | jq。
你可以转换旋度的HTTPie语法在PyPI上的卷饼包或者是CurliPie web应用程序.
本例使用Invoke-RestMethodcmdlet在PowerShell命令,列出指定Databricks集群的信息。
美元的令牌=“dapia1b2345678901c23456defa7bcde8fa9”ConvertedToken美元=美元的令牌|ConvertTo-SecureString-AsPlainTextforceInstanceID美元=“dbc-d1e2345f-a6b2.cloud.www.neidfyre.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] [-毫升] [-光子]-scala<scala-版本>
在哪里
米: Databricks运行时主要发布
米
F: Databricks运行时特性发布
F
cpu: CPU版本号毫升唯一的)
cpu
毫升
esr:扩展支持
esr
gpu:GPU-enabled
gpu
毫升:机器学习
光子:光子
光子
scala版本:用于编译Spark的Scala版本:2.10、2.11或2.12
scala版本
例如:
7.6.x-gpu-ml-scala2.12代表Databricks Runtime 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的Scala版本:2.10或2.11
例如,apache-spark-2.4.x-scala2.11.
apache-spark-2.4.x-scala2.11