بقية API 1.2

يسمح لك Api Rest Databricks Azure بالوصول برمجيا إلى Azure Databricks بدلا من المرور عبر واجهة المستخدم على الويب.

تغطي هذه المقالة REST API 1.2.

هام

هام

للوصول إلى واجهات برمجة التطبيقات Rest Databricks، يجب عليك المصادقة.

REST API استخدام الحالات

  • بدء تشغيل وظائف Apache Spark التي يتم تشغيلها من أنظمة الإنتاج الحالية أو من أنظمة سير العمل.
  • طرح برمجيا مجموعة من حجم معين في وقت محدد من اليوم ومن ثم إيقاف تشغيله في الليل.

فئات واجهة برمجة التطبيقات

  • سياق التنفيذ: إنشاء مساحات أسماء متغيرة فريدة حيث يمكن استدعاء أوامر Spark.
  • تنفيذ الأوامر: تشغيل الأوامر ضمن سياق تنفيذ محدد.

التفاصيل

  • يتم تشغيل واجهة برمجة تطبيقات REST هذه عبر HTTPS.
  • لاسترداد المعلومات، استخدم HTTP GET.
  • لتعديل الحالة، استخدم HTTP POST.
  • لتحميل الملفات، استخدم multipart/form-data . وإلا استخدم application/json .
  • نوع محتوى الاستجابة هو JSON.
  • يتم استخدام المصادقة الأساسية لمصادقة المستخدم لكل استدعاء API.
  • بيانات اعتماد المستخدم هي base64 ترميز وهي في رأس HTTP لكل استدعاء API. على سبيل المثال، ⁧Authorization: Basic YWRtaW46YWRtaW4=⁩.

الشروع في العمل

في الأمثلة التالية، استبدل <databricks-instance><databricks-instance> الخاص بنشر Azure Databricks.

اختبار الاتصال

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

يمكنك استخدام أي من الأداتين أعلاه لاختبار الاتصال. المنفذ 443 هو المنفذ HTTPS الافتراضي ويمكنك تشغيل API REST على هذا المنفذ. إذا لم تتمكن من الاتصال بالمنفذ 443، فاتصل help@databricks.com بعنوان URL للحساب.

عينة مكالمات API

توفر الأمثلة التالية بعض أوامر cURL ولكن يمكنك أيضا استخدام مكتبة HTTP في لغة البرمجة التي تختارها.

طلب GET

إذا كان عنوان URL يحتوي على & الحرف الذي يحتوي عليه، فيجب عليك اقتباس عنوان URL هذا حتى لا يفسره UNIX على أنه فاصل أوامر:

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

طلب POST مع التطبيق / json

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

نقاط نهاية API حسب الفئة

سياق التنفيذ

  • https://<databricks-instance>/api/1.2/contexts/create – إنشاء سياق تنفيذ على كتلة محددة للغة برمجة معينة

    • طلب POST مع التطبيق / json:
      • البيانات

        {"language": "scala", "clusterId": "peaceJam"}
        
  • https://<databricks-instance>/api/1.2/contexts/status – إظهار حالة سياق تنفيذ موجود

    • طلب الحصول على:
      • مثال الوسيطات: clusterId=peaceJam&contextId=179365396413324
      • status: ["Pending", "Running", "Error"]
  • https://<databricks-instance>/api/1.2/contexts/destroy – تدمير سياق التنفيذ

    • طلب POST مع التطبيق / json:
      • البيانات

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

تنفيذ الأمر

القيود المعروفة: تنفيذ الأمر لا يدعم %run .

  • https://<databricks-instance>/api/1.2/commands/execute – تشغيل أمر أو ملف.

    • طلب POST مع التطبيق / json:

      • البيانات

        {"language": "scala", "clusterId": "peaceJam", "contextId" : "5456852751451433082", "command": "sc.parallelize(1 to 10).collect"}
        
    • طلب POST مع بيانات متعددة الأجزاء/نموذج:

      • البيانات

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

        {"command": "./myfile.py"}
        
  • https://<databricks-instance>/api/1.2/commands/status – إظهار حالة أمر واحد أو نتيجة

    • طلب الحصول على
      • مثال الوسيطات: clusterId=peaceJam&contextId=5456852751451433082&commandId=5220029674192230006
      • status:["Queued", "Running", "Cancelling", "Finished", "Cancelled", "Error"]
  • https://<databricks-instance>/api/1.2/commands/cancel - إلغاء أمر واحد

    • طلب POST مع التطبيق / json:
      • البيانات

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

مثال: Upload وتشغيل SPARK JAR

Upload جرة

استخدم REST API (أحدث) لتحميل JAR وإرفاقه بمجموعة.

تشغيل جرة

  1. إنشاء سياق تنفيذ.

    curl -X POST -n  https://<databricks-instance>/api/1.2/contexts/create -d "language=scala&clusterId=batVenom"
    
    {
      "id": "3558513128163162828"
    }
    
  2. تنفيذ أمر يستخدم 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. تحقق من حالة الأمر. قد لا يعود على الفور إذا كنت تدير وظيفة Spark طويلة.

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

    القيم المسموح بها resultType لتضمين:

    • error
    • image
    • images
    • table
    • text