REST API 1.2

Azure Databricks REST API, Azure Databricks'e web kullanıcı arabirimi yerine programlamayla erişmenize olanak tanır.

Bu makalede REST API 1.2 ele alınmaktadır.

Önemli

Önemli

Databricks REST API’lerine erişmek için kimlik doğrulaması yapmanız gerekir.

REST API kullanım örnekleri

  • Mevcut üretim sistemlerinizden veya iş akışı sistemlerinden tetiklenen Apache Spark işleri başlatma.
  • Belirli boyuttaki bir kümeyi, programlama yoluyla günün belirli bir saatinde açma ve gece kapatma.

API kategorileri

  • Yürütme bağlamı: Spark komutlarının çağrılabileceği benzersiz değişken ad alanları oluşturma.
  • Komut yürütme: belirli bir yürütme bağlamında komut çalıştırma.

Ayrıntılar

  • Bu REST API, HTTPS üzerinden çalışır.
  • Bilgi almak için HTTP GET kullanın.
  • Durumu değiştirmek için HTTP POST kullanın.
  • Karşıya dosya yüklemek için multipart/form-data kullanın. Aksi takdirde application/json kullanın.
  • Yanıtın içerik türü JSON'dır.
  • Her API çağrısında kullanıcının kimliğini doğrulamak için temel kimlik doğrulaması kullanılır.
  • Kullanıcı kimlik bilgileri base64 kodlamalıdır ve her API çağrısının HTTP üst bilgisinde bulunur. Örneğin, Authorization: Basic YWRtaW46YWRtaW4=.

başlarken

Aşağıdaki örneklerde <databricks-instance> değerini Azure Databricks dağıtımınızın çalışma alanı URL’siyle değiştirin.

Bağlantınızı test edin

> 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!

Bağlantıyı test etmek için yukarıdaki araçlardan birini kullanabilirsiniz. Bağlantı noktası 443, varsayılan HTTPS bağlantı noktasıdır ve bu bağlantı noktasında REST API'yi çalıştırabilirsiniz. 443 numaralı bağlantı noktasına bağlanamıyorsanız hesap URL'nizle help@databricks.com adresine başvurun.

Örnek API çağrıları

Aşağıdaki örneklerde bazı cURL komutları gösterilmektedir, ancak tercih ettiğiniz programlama dilindeki bir HTTP kitaplığını da kullanabilirsiniz.

GET isteği

URL'nizde & karakteri varsa, UNIX'in bunu bir komut ayırıcısı olarak yorumlamaması için URL'yi tırnak içine almanız gerekir:

curl -n 'https://<databricks-instance>/api/1.2/commands/status?clusterId=batVenom&contextId=35585555555555&commandId=45382422555555555'

application/json ile POST isteği

curl -X POST -n https://<databricks-instance>/api/1.2/contexts/create -d "language=scala&clusterId=batVenom"

Kategoriye göre API uç noktaları

Yürütme bağlamı

  • https://<databricks-instance>/api/1.2/contexts/create – belirli bir kümede belirli bir programlama dili için yürütme bağlamı oluşturma

    • application/json ile POST isteği:
      • veriler

        {"language": "scala", "clusterId": "peaceJam"}
        
  • https://<databricks-instance>/api/1.2/contexts/status – mevcut bir yürütme bağlamının durumunu gösterme

    • GET isteği:
      • Örnek bağımsız değişkenler: clusterId=peaceJam&contextId=179365396413324
      • status: ["Pending", "Running", "Error"]
  • https://<databricks-instance>/api/1.2/contexts/destroy – yürütme bağlamını yok etme

    • application/json ile POST isteği:
      • veriler

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

Komut yürütme

Bilinen sınırlamalar: Komut yürütme %run komutunu desteklemez.

  • https://<databricks-instance>/api/1.2/commands/execute – bir komutu veya dosyayı çalıştırma.

    • application/json ile POST isteği:

      • veriler

        {"language": "scala", "clusterId": "peaceJam", "contextId" : "5456852751451433082", "command": "sc.parallelize(1 to 10).collect"}
        
    • multipart/form-data ile POST isteği:

      • veriler

        {"language": "python", "clusterId": "peaceJam", "contextId" : "5456852751451433082"}
        
      • files

        {"command": "./myfile.py"}
        
  • https://<databricks-instance>/api/1.2/commands/status – komutun durumunu veya sonucunu gösterme

    • GET İsteği
      • Örnek bağımsız değişkenler: clusterId=peaceJam&contextId=5456852751451433082&commandId=5220029674192230006
      • status:["Queued", "Running", "Cancelling", "Finished", "Cancelled", "Error"]
  • https://<databricks-instance>/api/1.2/commands/cancel – komutu iptal etme

    • application/json ile POST isteği:
      • veriler

        {"clusterId": "peaceJam", "contextId" : "5456852751451433082", "commandId" : "2245426871786618466"}
        

Örnek: Spark JAR’yi karşıya yükleme ve çalıştırma

JAR'yi karşıya yükleme

Bir JAR'yi karşıya yüklemek ve bir kümeye iliştirmek için REST API 2.0'ı kullanın.

JAR'yi çalıştırma

  1. Yürütme bağlamı oluşturma.

    curl -X POST -n  https://<databricks-instance>/api/1.2/contexts/create -d "language=scala&clusterId=batVenom"
    
    {
      "id": "3558513128163162828"
    }
    
  2. JAR'nizi kullanan bir komutu yürütme.

    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. Komutunuzun durumunu denetleme. Uzun bir Spark işi çalıştırıyorsanız komut hemen dönüş yapamayabilir.

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