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é

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žijte application/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"}
        
  • 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"]
  • https://<databricks-instance>/api/1.2/contexts/destroy: Zničí kontext spuštění.

    • Požadavek POST s application/json:
      • data

        {"contextId" : "1793653964133248955", "clusterId" : "peaceJam"}
        

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"]
  • 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"}
        

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

  1. 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"
    }
    
  2. 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"
    }
    
  3. 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"
    }