Rest API 1.2
Databricks REST API允许您通过编程方式访问Databricks,而不是通过web UI。
本文涵盖REST API 1.2。REST API最新的版本,以及REST API2.1而且2.0,也有。
另请参阅REST API浏览器(测试版).
重要的
要访问Databricks REST api,必须进行身份验证.
REST API用例
启动从现有生产系统或从气流.
以编程的方式在一天的固定时间启动一定大小的集群,然后在晚上关闭它。
细节
这个REST API在HTTPS上运行。
为了检索信息,使用HTTP GET。
要修改状态,请使用HTTP POST。
对于文件上传,使用
多部分/格式
.否则使用application / json
.响应内容类型是JSON。
基本身份验证用于对每个API调用进行用户身份验证。
用户凭证是base64编码的,并且在每个API调用的HTTP报头中。例如,
授权:基本YWRtaW46YWRtaW4 =
.如果你使用旋度
,也可以将用户凭据存储在. netrc
文件。有关使用Databricks REST API的更多信息,请参见Databricks REST API参考.
API参考
获取集群列表
方法和路径:
得到/ api / 1.2 /集群/列表
获取集群信息
方法和路径:
得到/ api / 1.2 /集群/状态
重新启动集群
方法和路径:
帖子/ api / 1.2 /集群/重新启动
创建执行上下文
方法和路径:
帖子/ api / 1.2 /环境/创建
获取关于执行上下文的信息
方法和路径:
得到/ api / 1.2 /环境/状态
删除执行上下文
方法和路径:
帖子/ api / 1.2 /环境/销毁
运行命令
方法和路径:
帖子/ api / 1.2 /命令/执行
例子
要求:
curl—netrc—请求POST\https:// < databricks-instance > / api / 1.2 /命令/执行\——头“application / json内容类型:\——数据@execute-command.json
execute-command.json
:
{“clusterId”:“1234 - 567890 span123”,“contextId”:“1234567890123456789”,“语言”:“巨蟒”,“命令”:“打印”(“Hello, World !”)}
回应:
{“id”:“1234 ab56 - 7890 - 1 - cde - 234 f - 5 - abcdef67890”}
获取命令的相关信息
方法和路径:
得到/ api / 1.2 /命令/状态
例子
要求:
Curl—netrc—get\https:// < databricks-instance > / api / 1.2 /命令/状态\——数据clusterId=1234567890 - span123\——数据contextId=1234567890123456789\——数据commandId=1234年ab56 - 7890 - 1 - cde - 234 f - 5 - abcdef67890
回应:
{“id”:“1234 ab56 - 7890 - 1 - cde - 234 f - 5 - abcdef67890”,“状态”:“完成”,“结果”:{“resultType”:“文本”,“数据”:“你好,世界!”}}
响应模式
场 |
---|
id 类型: 命令ID。 |
状态 类型: 命令的状态。之一:
|
结果 类型: 命令执行的结果。
为
为
为
为
为
|
取消命令
方法和路径:
POST / api / 1.2 /命令/取消
附加的例子
下面的其他示例提供了可以使用的命令旋度
或者使用您选择的编程语言中的HTTP库进行调整。
创建执行上下文
在指定的集群上为给定的编程语言创建一个执行上下文:
curl—netrc—请求POST\https:// < databricks-instance > / api / 1.2 /环境/创建\——头“application / json内容类型:\——数据'{"language": "scala", "clusterId": "1234-567890-span123"}'
获取有关执行上下文的信息:
Curl—netrc—get\https:// < databricks-instance > / api / 1.2 /环境/状态\——数据' clusterId = 1234 - 567890 span123&contextid = 1234567890123456789 '
删除执行上下文:
curl—netrc—请求POST\https:// < databricks-instance > / api / 1.2 /环境/销毁\——头“application / json内容类型:\——数据'{" contexttid ": "1234567890123456789", "clusterId": "1234-567890-span123"}'
运行命令
已知限制:不支持命令执行运行%
.
执行命令字符串:
curl—netrc—请求POST\https:// < databricks-instance > / api / 1.2 /命令/执行\——头“application / json内容类型:\——数据{"language": "scala", "clusterId": "1234-567890-span123", " contexttid ": "1234567890123456789", "command": "sc.parallelize(1 to 10). "收集“}”
运行一个文件:
curl—netrc—请求POST\https:// < databricks-instance > / api / 1.2 /命令/执行\——头“内容类型:多部分/格式”\——形式语言=python\——形式clusterId=1234567890 - span123\——形式contextId=1234567890123456789\——形式命令=@myfile.py
显示命令的状态和结果:
Curl—netrc—get\https:// < databricks-instance > / api / 1.2 /命令/状态\——数据' clusterId = 1234 - 567890 span123&contextid = 1234567890123456789 &commandid = 1234 ab56 - 7890 - 1 - cde - 234 f - 5 - abcdef67890”
取消命令:
curl—netrc—请求POST\https:// < databricks-instance > / api / 1.2 /命令/取消\——数据' clusterId = 1234 - 567890 span123&contextid = 1234567890123456789 &commandid = 1234 ab56 - 7890 - 1 - cde - 234 f - 5 - abcdef67890”\
上传并运行Spark JAR
上传JAR
使用REST API(最新)上传JAR并将其附加到集群。
运行JAR
创建一个执行上下文。
curl—netrc—请求POST\https:// < databricks-instance > / api / 1.2 /环境/创建\——数据“语言= scala&clusterId = 1234 - 567890 span123”
{“id”:“1234567890123456789”}
执行一个使用JAR的命令。
curl—netrc—请求POST\https:// < databricks-instance > / api / 1.2 /命令/执行\——数据的语言= scala&clusterId = 1234 - 567890 span123&contextid = 1234567890123456789命令= println (com.databricks.apps.logs.chapter1.LogAnalyzer.processLogFile (sc, null, dbfs: / somefile.log))”
{“id”:“1234 ab56 - 7890 - 1 - cde - 234 f - 5 - abcdef67890”}
检查命令的状态。如果您正在运行一个较长的Spark作业,它可能不会立即返回。
curl——netrc“https:// < databricks-instance > / api / 1.2 /命令/地位?clusterId=1234567890 - span123&contextId=1234567890123456789&commandId=1234年ab56 - 7890 - 1 - cde - 234 f - 5 - abcdef67890'
{“id”:“1234 ab56 - 7890 - 1 - cde - 234 f - 5 - abcdef67890”,“结果”:{“数据”:内容大小平均:1234,最小:1234,最大:1234,“resultType”:“文本”},“状态”:“完成”}
允许的值
resultType
包括:错误
图像
图片
表格
文本