REST API 1.2
Rozhraní Databricks REST API umožňuje programový přístup do Azure Databricks namísto přístupu přes webové uživatelské rozhraní.
Tento článek se zabývá rozhraním REST API 1.2.
Důležité
- Pro správu clusteru a knihoven použijte REST API 2,0 .
- Kontext spuštění 1,2 a rozhraní API pro spuštění příkazu jsou nadále podporovány.
Důležité
Pokud chcete získat přístup k rozhraním REST API služby Databricks, musíte použít ověřování.
Případy použití rozhraní REST API
- Spouštění úloh Apache Spark aktivovaných z vašich stávajících produkčních systémů nebo ze systémů pracovních postupů
- Programové vyvolání clusteru určité velikosti ve stanovený čas dne a jeho ukončení v noci
Kategorie rozhraní API
- Kontext spuštění: Vytvořte obory názvů jedinečných proměnných, v nichž je možné volat příkazy Spark.
- Provedení příkazu: Spusťte příkazy v rámci určitého kontextu spuštění.
Podrobnosti
- Toto rozhraní REST API běží přes protokol HTTPS.
- Při načítání informací se používá HTTP GET.
- Pro úpravu stavu se používá HTTP POST.
- Pro nahrání souboru použijte
multipart/form-data
. V opačném případě použijteapplication/json
. - Obsah odpovědi je typu JSON.
- K ověření uživatele se při každém volání rozhraní API použije základní ověřování.
- Přihlašovací údaje uživatele jsou kódované jako base64 a jsou v hlavičce HTTP pro každé volání rozhraní API. Například,
Authorization: Basic YWRtaW46YWRtaW4=
.
Začínáme
V následujících příkladech nahraďte <databricks-instance>
adresou URL pracovního prostoru pro vaše nasazení Azure Databricks.
Otestování připojení
> telnet <databricks-instance> 443
Trying 52.11.163.202...
Connected to <databricks-instance>.
Escape character is '^]'.
> nc -v -z <databricks-instance> 443
found 1 connections:
1: flags=82<CONNECTED,PREFERRED>
outif utun0
src x.x.x.x port 59063
dst y.y.y.y port 443
rank info not available
TCP aux info available
Connection to <databricks-instance> port 443 [TCP/HTTPS] succeeded!
K otestování připojení můžete použít kterýkoli z nástrojů uvedených výše. Port 443 je výchozím portem HTTPS a můžete na něm spustit REST API. Pokud se nemůžete připojit k portu 443, kontaktujte prosím help@databricks.com s adresou URL vašeho účtu.
Ukázková volání rozhraní API
Následují příklady příkazů cURL, ale můžete také použít knihovnu HTTP v programovacím jazyce, který si zvolíte.
Požadavek GET
Pokud adresa URL obsahuje znak &
, musíte ji vložit do uvozovek, aby UNIX tento znak neinterpretoval jako oddělovač příkazů:
curl -n 'https://<databricks-instance>/api/1.2/commands/status?clusterId=batVenom&contextId=35585555555555&commandId=45382422555555555'
Požadavek POST s application/json
curl -X POST -n https://<databricks-instance>/api/1.2/contexts/create -d "language=scala&clusterId=batVenom"
Koncové body rozhraní API podle kategorií
Kontext spuštění
https://<databricks-instance>/api/1.2/contexts/create
: Vytvoří kontext spuštění v zadaném clusteru pro daný programovací jazyk.- Požadavek POST s application/json:
data
{"language": "scala", "clusterId": "peaceJam"}
- Požadavek POST s application/json:
https://<databricks-instance>/api/1.2/contexts/status
: Zobrazí stav existujícího kontextu spuštění.- Požadavek GET:
- Příklady argumentů:
clusterId=peaceJam&contextId=179365396413324
status
:["Pending", "Running", "Error"]
- Příklady argumentů:
- Požadavek GET:
https://<databricks-instance>/api/1.2/contexts/destroy
: Zničí kontext spuštění.- Požadavek POST s application/json:
data
{"contextId" : "1793653964133248955", "clusterId" : "peaceJam"}
- Požadavek POST s application/json:
Provedení příkazu
Známá omezení: Provedení příkazu nepodporuje %run
.
https://<databricks-instance>/api/1.2/commands/execute
: Spustí příkaz nebo soubor.Požadavek POST s application/json:
data
{"language": "scala", "clusterId": "peaceJam", "contextId" : "5456852751451433082", "command": "sc.parallelize(1 to 10).collect"}
Požadavek POST s multipart/form-data:
data
{"language": "python", "clusterId": "peaceJam", "contextId" : "5456852751451433082"}
files
{"command": "./myfile.py"}
https://<databricks-instance>/api/1.2/commands/status
: Zobrazí stav nebo výsledek jednoho příkazu.- Požadavek GET
- Příklady argumentů:
clusterId=peaceJam&contextId=5456852751451433082&commandId=5220029674192230006
status
:["Queued", "Running", "Cancelling", "Finished", "Cancelled", "Error"]
- Příklady argumentů:
- Požadavek GET
https://<databricks-instance>/api/1.2/commands/cancel
: Zruší jeden příkaz.- Požadavek POST s application/json:
data
{"clusterId": "peaceJam", "contextId" : "5456852751451433082", "commandId" : "2245426871786618466"}
- Požadavek POST s application/json:
Příklad: Nahrání a spuštění souboru Spark JAR
Nahrání souboru JAR
K nahrání souboru JAR a jeho připojení ke clusteru použijte REST API 2.0.
Spuštění souboru JAR
Vytvořte kontext spuštění.
curl -X POST -n https://<databricks-instance>/api/1.2/contexts/create -d "language=scala&clusterId=batVenom"
{ "id": "3558513128163162828" }
Spusťte příkaz s použitím daného souboru JAR.
curl -X POST -n https://<databricks-instance>/api/1.2/commands/execute \ -d 'language=scala&clusterId=batVenom&contextId=3558513128163162828&command=println(com.databricks.apps.logs.chapter1.LogAnalyzer.processLogFile(sc,null,"dbfs:/somefile.log"))'
{ "id": "4538242203822083978" }
Zkontrolujte stav příkazu. Pokud spustíte déletrvající úlohu Spark, nemusí se vrátit hned.
curl -n 'https://<databricks-instance>/api/1.2/commands/status?clusterId=batVenom&contextId=3558513128163162828&commandId=4538242203822083978'
{ "id": "4538242203822083978", "results": { "data": "Content Size Avg: 1234, Min: 1234, Max: 1234", "resultType": "text" }, "status": "Finished" }