REST API 1.2
磚REST API允許您以編程方式訪問數據磚而不是通過web UI。
本文涵蓋了REST API 1.2。REST API最新的版本,以及REST API2.1和2.0也可用。
重要的
訪問數據磚REST api,你必須進行身份驗證。
REST API的用例
啟動Apache火花引發了從現有的生產係統或工作氣流。
編程帶來了一定規模的集群在一個固定的時間在晚上,然後關閉它。
細節
這個REST API在運行HTTPS。
對於檢索信息,使用HTTP GET。
修改狀態,使用HTTP POST。
文件上傳,使用
多部分/格式
。否則使用application / json
。響應內容類型是JSON。
基本身份驗證用於驗證用戶每一個API調用。
用戶憑證base64編碼,並在每個API調用HTTP頭。例如,
授權:基本YWRtaW46YWRtaW4 =
。如果你使用旋度
,或者你可以存儲用戶憑證. netrc
文件。關於使用磚REST API的更多信息,參見磚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\https:// < databricks-instance > / api / 1.2 /命令/狀態\——數據clusterId=1234年567890 - 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內容類型:\——數據”{“語言”:“scala”,“clusterId”:“1234 - 567890”span123}”
得到執行上下文的信息:
curl——netrc\https:// < databricks-instance > / api / 1.2 /環境/狀態\——數據' clusterId = 1234 - 567890 span123&contextid = 1234567890123456789 '
刪除執行上下文:
curl——netrc POST請求\https:// < databricks-instance > / api / 1.2 /環境/銷毀\——頭“application / json內容類型:\——數據”{contextId”:“1234567890123456789”、“clusterId”:“1234 - 567890”span123}”
運行一個命令
已知的限製:命令執行不支持運行%
。
運行一個命令字符串:
curl——netrc POST請求\https:// < databricks-instance > / api / 1.2 /命令/執行\——頭“application / json內容類型:\——數據”{“語言”:“scala”,“clusterId”:“1234 - 567890 span123”、“contextId”:“1234567890123456789”,“命令”:“sc.parallelize (1 - 10)。收集“}”
運行一個文件:
curl——netrc POST請求\https:// < databricks-instance > / api / 1.2 /命令/執行\——頭“內容類型:多部分/格式”\——形式語言=python\——形式clusterId=1234年567890 - span123\——形式contextId=1234567890123456789\——形式命令=@myfile.py
顯示命令的狀態和結果:
curl——netrc\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”\
上傳並運行一個火花JAR
上傳一個罐子
使用REST API(最新)上傳一個JAR,附加一個集群。
運行一個罐子
創建一個執行上下文。
curl——netrc POST請求\https:// < databricks-instance > / api / 1.2 /環境/創建\——數據“語言= scala&clusterId = 1234 - 567890 span123”
{“id”:“1234567890123456789”}
執行一個命令,使用你的罐子。
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”}
檢查你的命令的狀態。它可能不會返回立即如果你正在運行一個冗長的火花的工作。
curl——netrc“https:// < databricks-instance > / api / 1.2 /命令/地位? clusterId = 1234 - 567890 span123&contextid = 1234567890123456789 &commandid = 1234 ab56 - 7890 - 1 - cde - 234 f - 5 - abcdef67890”
{“id”:“1234 ab56 - 7890 - 1 - cde - 234 f - 5 - abcdef67890”,“結果”:{“數據”:“內容大小Avg: 1234分鍾:1234年,馬克斯:1234”,“resultType”:“文本”},“狀態”:“完成”}
允許的值
resultType
包括:錯誤
圖像
圖片
表
文本