Databricks SDK ل Python

في هذه المقالة، ستتعلم كيفية أتمتة العمليات في حسابات Azure Databricks ومساحات العمل والموارد ذات الصلة باستخدام Databricks SDK ل Python. تكمل هذه المقالة Databricks SDK لوثائق Python على قراءة المستندات وأمثلة التعليمات البرمجية في مستودع Databricks SDK ل Python في GitHub.

إشعار

هذه الميزة في Beta ولا بأس من استخدامها في الإنتاج.

خلال فترة بيتا، توصي Databricks بتثبيت تبعية على الإصدار الثانوي المحدد من Databricks SDK ل Python الذي تعتمد عليه التعليمات البرمجية الخاصة بك. على سبيل المثال، يمكنك تثبيت التبعيات في ملفات مثل requirements.txt ، venvأو pyproject.toml للشعر poetry.lock . لمزيد من المعلومات حول تثبيت التبعيات، راجع البيئات الظاهرية والحزم ل venv، أو تثبيت التبعيات للشعر.

قبل البدء

يمكنك استخدام Databricks SDK ل Python من داخل دفتر ملاحظات Azure Databricks أو من جهاز التطوير المحلي.

  • لاستخدام Databricks SDK ل Python من داخل دفتر ملاحظات Azure Databricks، انتقل إلى استخدام Databricks SDK ل Python من دفتر ملاحظات Azure Databricks.
  • لاستخدام Databricks SDK ل Python من جهاز التطوير المحلي، أكمل الخطوات الواردة في هذا القسم.

قبل البدء في استخدام Databricks SDK ل Python، يجب أن يحتوي جهاز التطوير الخاص بك على:

  • تم تكوين مصادقة Azure Databricks.
  • تم تثبيت Python 3.8 أو أعلى. لأتمتة موارد حساب Azure Databricks، توصي Databricks بأن يكون لديك الإصدارات الرئيسية والثانوية من Python المثبتة التي تطابق الإصدار المثبت على مورد حساب Azure Databricks الهدف. تعتمد أمثلة هذه المقالة على أتمتة المجموعات باستخدام Databricks Runtime 13.3 LTS، الذي تم تثبيت Python 3.10 عليه. للحصول على الإصدار الصحيح، راجع إصدارات ملاحظات إصدار Databricks Runtime والتوافق لإصدار Databricks Runtime لنظام المجموعة.
  • توصي Databricks بإنشاء وتنشيط بيئة Python الظاهرية لكل مشروع تعليمة برمجية Python تستخدمه مع Databricks SDK ل Python. تساعد بيئات Python الظاهرية على التأكد من أن مشروع التعليمات البرمجية يستخدم إصدارات متوافقة من حزم Python وPython (في هذه الحالة، Databricks SDK لحزمة Python). توضح هذه المقالة كيفية استخدام venv أو Potetry لبيئات Python الظاهرية.

إنشاء بيئة Python ظاهرية باستخدام venv

  1. من الوحدة الطرفية الخاصة بك إلى الدليل الجذر لمشروع التعليمات البرمجية Python، قم بتشغيل الأمر التالي. يرشد venv هذا الأمر إلى استخدام Python 3.10 للبيئة الظاهرية، ثم ينشئ ملفات دعم البيئة الظاهرية في دليل مخفي يسمى .venv داخل الدليل الجذر لمشروع التعليمات البرمجية Python.

    # Linux and macOS
    python3.10 -m venv ./.venv
    
    # Windows
    python3.10 -m venv .\.venv
    
  2. استخدم venv لتنشيط البيئة الظاهرية. راجع وثائق venv للأمر الصحيح لاستخدامه، استنادا إلى نظام التشغيل ونوع المحطة الطرفية. على سبيل المثال، على macOS قيد التشغيل zsh:

    source ./.venv/bin/activate
    

    ستعرف أنه يتم تنشيط بيئتك الظاهرية عندما يظهر اسم البيئة الظاهرية (على سبيل المثال، .venv) بين قوسين قبل مطالبة المحطة الطرفية.

    لإلغاء تنشيط البيئة الظاهرية في أي وقت، قم بتشغيل الأمر deactivate.

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

انتقل إلى بدء استخدام Databricks SDK ل Python.

إنشاء بيئة ظاهرية باستخدام الشعر

  1. تثبيت الشعر، إذا لم تكن قد فعلت ذلك بالفعل.

  2. من الوحدة الطرفية الخاصة بك إلى الدليل الجذر لمشروع التعليمات البرمجية Python، قم بتشغيل الأمر التالي لإرشاد poetry لتهيئة مشروع التعليمات البرمجية Python للشعر.

    poetry init
    
  3. يعرض الشعر عدة مطالبات لك لإكمالها. لا توجد أي من هذه المطالبات خاصة ب Databricks SDK ل Python. للحصول على معلومات حول هذه المطالبات، راجع init.

  4. بعد إكمال المطالبات، يضيف الشعر ملفا pyproject.toml إلى مشروع Python الخاص بك. للحصول على pyproject.toml معلومات حول الملف، راجع ملف pyproject.toml.

  5. مع استمرار تعيين المحطة الطرفية إلى الدليل الجذر لمشروع التعليمات البرمجية Python، قم بتشغيل الأمر التالي. يرشد poetry هذا الأمر إلى قراءة pyproject.toml الملف، وتثبيت التبعيات وحلها، وإنشاء poetry.lock ملف لتأمين التبعيات، وأخيرا إنشاء بيئة ظاهرية.

    poetry install
    
  6. من الوحدة الطرفية الخاصة بك إلى الدليل الجذر لمشروع التعليمات البرمجية Python، قم بتشغيل الأمر التالي لإرشاد poetry لتنشيط البيئة الظاهرية وإدخال shell.

    poetry shell
    

    ستعرف أنه تم تنشيط البيئة الظاهرية الخاصة بك ويتم إدخال shell عندما يظهر اسم البيئة الظاهرية بين قوسين قبل مطالبة المحطة الطرفية الخاصة بك.

    لإلغاء تنشيط البيئة الظاهرية والخروج من shell في أي وقت، قم بتشغيل الأمر exit.

    ستعرف أنك خرجت من shell عندما لم يعد اسم البيئة الظاهرية يظهر بين قوسين قبل مطالبة المحطة الطرفية الخاصة بك.

    لمزيد من المعلومات حول إنشاء البيئات الظاهرية للشعر وإدارتها، راجع إدارة البيئات.

بدء استخدام Databricks SDK ل Python

يصف هذا القسم كيفية البدء باستخدام Databricks SDK ل Python من جهاز التطوير المحلي الخاص بك. لاستخدام Databricks SDK ل Python من داخل دفتر ملاحظات Azure Databricks، انتقل إلى استخدام Databricks SDK ل Python من دفتر ملاحظات Azure Databricks.

  1. على جهاز التطوير الخاص بك مع تكوين مصادقة Azure Databricks وPython المثبتة بالفعل وبيئة Python الظاهرية التي تم تنشيطها بالفعل، قم بتثبيت حزمة databricks-sdk (وتبعياتها) من فهرس حزمة Python (PyPI)، كما يلي:

    Venv

    استخدم pip لتثبيت الحزمة databricks-sdk . (في بعض الأنظمة، قد تحتاج إلى استبدال pip3 ب pip، هنا وفي جميع أنحاء.)

    pip3 install databricks-sdk
    

    الشعر

    poetry add databricks-sdk
    

    لتثبيت إصدار معين من الحزمة databricks-sdk أثناء وجود Databricks SDK ل Python في Beta، راجع محفوظات إصدار الحزمة. على سبيل المثال، لتثبيت الإصدار 0.1.6:

    Venv

    pip3 install databricks-sdk==0.1.6
    

    الشعر

    poetry add databricks-sdk==0.1.6
    

    تلميح

    لترقية تثبيت موجود من Databricks SDK لحزمة Python إلى أحدث إصدار، قم بتشغيل الأمر التالي:

    Venv

    pip3 install --upgrade databricks-sdk
    

    الشعر

    poetry add databricks-sdk@latest
    

    لإظهار Databricks SDK لحزمة Python الحالية Version والتفاصيل الأخرى، قم بتشغيل الأمر التالي:

    Venv

    pip3 show databricks-sdk
    

    الشعر

    poetry show databricks-sdk
    
  2. في بيئة Python الظاهرية، قم بإنشاء ملف تعليمة برمجية Python الذي يستورد Databricks SDK ل Python. المثال التالي، في ملف يسمى main.py بالمحتويات التالية، يسرد ببساطة جميع المجموعات في مساحة عمل Azure Databricks:

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient()
    
    for c in w.clusters.list():
      print(c.cluster_name)
    
  3. قم بتشغيل ملف التعليمات البرمجية ل Python الخاص بك، بافتراض ملف يسمى main.py، عن طريق تشغيل python الأمر :

    Venv

    python3.10 main.py
    

    الشعر

    إذا كنت في غلاف البيئة الظاهرية:

    python3.10 main.py
    

    إذا لم تكن في غلاف البيئة الظاهرية:

    poetry run python3.10 main.py
    

    إشعار

    من خلال عدم تعيين أي وسيطات في الاستدعاء السابق إلى w = WorkspaceClient()، يستخدم Databricks SDK ل Python العملية الافتراضية لمحاولة تنفيذ مصادقة Azure Databricks. لتجاوز هذا السلوك الافتراضي، راجع قسم المصادقة التالي.

مصادقة Databricks SDK ل Python باستخدام حساب Azure Databricks أو مساحة العمل

يصف هذا القسم كيفية مصادقة Databricks SDK ل Python من جهاز التطوير المحلي إلى حساب Azure Databricks أو مساحة العمل الخاصة بك. لمصادقة Databricks SDK ل Python من داخل دفتر ملاحظات Azure Databricks، انتقل إلى استخدام Databricks SDK ل Python من دفتر ملاحظات Azure Databricks.

ينفذ Databricks SDK ل Python معيار المصادقة الموحد لعميل Databricks، وهو نهج معماري وبرنامجي موحد ومتسق للمصادقة. يساعد هذا الأسلوب على جعل إعداد المصادقة وأتمتتها باستخدام Azure Databricks أكثر مركزية وقابلية للتنبؤ. يمكنك من تكوين مصادقة Databricks مرة واحدة ثم استخدام هذا التكوين عبر أدوات Databricks متعددة وSDKs دون مزيد من تغييرات تكوين المصادقة. لمزيد من المعلومات، بما في ذلك أمثلة التعليمات البرمجية الأكثر اكتمالا في Python، راجع مصادقة عميل Databricks الموحدة.

إشعار

لم تقم Databricks SDK ل Python بعد بتنفيذ مصادقة الهويات المدارة من Azure.

تتضمن بعض أنماط الترميز المتوفرة لتهيئة مصادقة Databricks باستخدام Databricks SDK ل Python ما يلي:

  • استخدم المصادقة الافتراضية ل Databricks عن طريق القيام بأحد الإجراءات التالية:

    • إنشاء أو تحديد ملف تعريف تكوين Databricks مخصص مع الحقول المطلوبة لنوع مصادقة Databricks الهدف. ثم قم بتعيين DATABRICKS_CONFIG_PROFILE متغير البيئة إلى اسم ملف تعريف التكوين المخصص.
    • تعيين متغيرات البيئة المطلوبة لنوع مصادقة Databricks الهدف.

    ثم قم بإنشاء مثيل على سبيل المثال لعنصر WorkspaceClient مع مصادقة Databricks الافتراضية كما يلي:

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient()
    # ...
    
  • الترميز المضمن للحاويات المطلوبة مدعوم ولكن غير مستحسن، لأنه يخاطر بكشف المعلومات الحساسة في التعليمات البرمجية الخاصة بك، مثل الرموز المميزة للوصول الشخصي ل Azure Databricks. المثال التالي للرموز الثابتة لمضيف Azure Databricks وقيم الرمز المميز للوصول لمصادقة رمز Databricks المميز:

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient(
      host  = 'https://...',
      token = '...'
    )
    # ...
    

راجع أيضا المصادقة في Databricks SDK لوثائق Python.

استخدام Databricks SDK ل Python من دفتر ملاحظات Azure Databricks

يمكنك استدعاء Databricks SDK لوظائف Python من دفتر ملاحظات Azure Databricks يحتوي على مجموعة Azure Databricks مرفقة مع تثبيت Databricks SDK ل Python. تم تثبيت Databricks SDK ل Python بالفعل على جميع مجموعات Azure Databricks التي تستخدم Databricks Runtime 13.3 LTS أو أعلى. بالنسبة لمجموعات Azure Databricks التي تستخدم Databricks Runtime 12.2 LTS والإصدارات أدناه، يجب تثبيت Databricks SDK ل Python أولا. راجع الخطوة 1: تثبيت Databricks SDK ل Python أو ترقيته.

لمشاهدة رقم إصدار Databricks SDK ل Python المثبت بشكل افتراضي لإصدار معين من Databricks Runtime، راجع قسم "مكتبات Python المثبتة" في ملاحظات إصدار Databricks Runtime لإصدار Databricks وقت التشغيل هذا.

يستخدم Databricks SDK ل Python 0.6.0 والإصدارات الأحدث مصادقة دفتر ملاحظات Azure Databricks الافتراضية. تعتمد مصادقة دفتر ملاحظات Azure Databricks الافتراضية على رمز وصول شخصي مؤقت ل Azure Databricks يقوم Azure Databricks بإنشاءه تلقائيا في الخلفية لاستخدامه الخاص. يحذف Azure Databricks هذا الرمز المميز المؤقت بعد توقف دفتر الملاحظات عن التشغيل.

هام

تعمل مصادقة دفتر ملاحظات Azure Databricks الافتراضية فقط على عقدة برنامج تشغيل نظام المجموعة وليس على أي من عقد عامل نظام المجموعة أو المنفذ.

يدعم Databricks Runtime 13.3 LTS والإصدارات الأحدث مصادقة دفتر ملاحظات Azure Databricks الافتراضية مع Databricks SDK ل Python 0.1.7 أو أعلى مثبتة. يدعم Databricks Runtime 10.4 LTS والإصدارات الأحدث مصادقة دفتر ملاحظات Azure Databricks الافتراضية مع Databricks SDK ل Python 0.1.10 أو أعلى مثبتة. ومع ذلك، توصي Databricks بتثبيت Databricks SDK أو الترقية إليه ل Python 0.6.0 أو إصدار أحدث للحصول على أقصى توافق مع مصادقة دفتر ملاحظات Azure Databricks الافتراضية، بغض النظر عن إصدار وقت تشغيل Databricks.

يجب تثبيت أو ترقية Databricks SDK ل Python على مجموعة Azure Databricks إذا كنت تريد استدعاء واجهات برمجة التطبيقات على مستوى حساب Azure Databricks أو إذا كنت تريد استخدام نوع مصادقة Azure Databricks بخلاف مصادقة دفتر ملاحظات Azure Databricks الافتراضية، كما يلي:

نوع المصادقة Databricks SDK لإصدارات Python
مصادقة OAuth من جهاز إلى جهاز (M2M) 0.18.0 وما فوق
مصادقة OAuth من مستخدم إلى جهاز (U2M) 0.19.0 وما فوق
المصادقة الأساسية لخدمة معرف Microsoft Entra جميع الإصدارات
مصادقة Azure CLI جميع الإصدارات
مصادقة رمز الوصول الشخصي ل Databricks جميع الإصدارات

مصادقة الهويات المدارة من Azure غير مدعومة بعد.

لا تعمل مصادقة دفتر ملاحظات Azure Databricks مع ملفات تعريف تكوين Azure Databricks.

الخطوة 1: تثبيت أو ترقية Databricks SDK ل Python

  1. يمكن لدفاتر ملاحظات Azure Databricks Python استخدام Databricks SDK ل Python تماما مثل أي مكتبة Python أخرى. لتثبيت أو ترقية Databricks SDK لمكتبة Python على مجموعة Azure Databricks المرفقة، قم بتشغيل %pip الأمر السحري من خلية دفتر ملاحظات كما يلي:

    %pip install databricks-sdk --upgrade
    
  2. بعد تشغيل %pip الأمر السحري، يجب إعادة تشغيل Python لجعل المكتبة المثبتة أو التي تمت ترقيتها متاحة لدفتر الملاحظات. للقيام بذلك، قم بتشغيل الأمر التالي من خلية دفتر ملاحظات مباشرة بعد الخلية %pip باستخدام الأمر السحري:

    dbutils.library.restartPython()
    
  3. لعرض الإصدار المثبت من Databricks SDK ل Python، قم بتشغيل الأمر التالي من خلية دفتر ملاحظات:

    %pip show databricks-sdk | grep -oP '(?<=Version: )\S+'
    

الخطوة 2: تشغيل التعليمات البرمجية الخاصة بك

في خلايا دفتر الملاحظات، أنشئ تعليمة Python البرمجية التي تستورد ثم تستدعي Databricks SDK ل Python. يستخدم المثال التالي مصادقة دفتر ملاحظات Azure Databricks الافتراضية لسرد جميع المجموعات في مساحة عمل Azure Databricks:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

for c in w.clusters.list():
  print(c.cluster_name)

عند تشغيل هذه الخلية، تظهر قائمة بأسماء كافة المجموعات المتوفرة في مساحة عمل Azure Databricks.

لاستخدام نوع مصادقة Azure Databricks مختلف، راجع أنواع مصادقة Azure Databricks المدعومة وانقر فوق الارتباط المقابل للحصول على تفاصيل تقنية إضافية.

استخدام أدوات Databricks المساعدة

يمكنك استدعاء مرجع Databricks Utilities (dbutils) من Databricks SDK لرمز Python الذي يعمل على جهاز التطوير المحلي أو من داخل دفتر ملاحظات Azure Databricks.

  • من جهاز التطوير المحلي الخاص بك، تتمتع أدوات Databricks المساعدة بالوصول فقط إلى dbutils.fsdbutils.secretsdbutils.widgetsمجموعات الأوامر وdbutils.jobs.
  • من دفتر ملاحظات Azure Databricks المرفق بمجموعة Azure Databricks، تتمتع Databricks Utilities بالوصول إلى جميع مجموعات أوامر Databricks Utilities المتوفرة، وليس فقط dbutils.fsو dbutils.secretsو.dbutils.widgets بالإضافة إلى ذلك، dbutils.notebook تقتصر مجموعة الأوامر على مستويين من الأوامر فقط، على سبيل المثال dbutils.notebook.run أو dbutils.notebook.exit.

لاستدعاء Databricks Utilities إما من جهاز التطوير المحلي أو دفتر ملاحظات Azure Databricks، استخدم dbutils داخل WorkspaceClient. يستخدم مثال التعليمات البرمجية هذا مصادقة دفتر ملاحظات Azure Databricks الافتراضية للاتصال dbutils داخل WorkspaceClient لسرد مسارات كافة الكائنات في جذر DBFS لمساحة العمل.

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
d = w.dbutils.fs.ls('/')

for f in d:
  print(f.path)

بدلا من ذلك، يمكنك الاتصال dbutils مباشرة. ومع ذلك، تقتصر على استخدام مصادقة دفتر ملاحظات Azure Databricks الافتراضية فقط. يستدعي dbutils مثال التعليمات البرمجية هذا مباشرة لسرد كافة الكائنات في جذر DBFS لمساحة العمل.

from databricks.sdk.runtime import *

d = dbutils.fs.ls('/')

for f in d:
  print(f.path)

لا يمكنك استخدام dbutils لوحدك أو داخله WorkspaceClient للوصول إلى وحدات تخزين كتالوج Unity. بدلا من ذلك، استخدم files داخل WorkspaceClient. يستدعي files مثال التعليمات البرمجية هذا داخل WorkspaceClient لطباعة محتويات الملف المحدد في وحدة التخزين المحددة.

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

resp = w.files.download('/Volumes/main/default/my-volume/sales.csv')
print(str(resp.contents.read(), encoding='utf-8'))

راجع أيضا التفاعل مع الدبوت.

أمثلة على التعليمات البرمجية

توضح أمثلة التعليمات البرمجية التالية كيفية استخدام Databricks SDK ل Python لإنشاء وحذف المجموعات وتشغيل المهام وسرد المجموعات على مستوى الحساب. تستخدم أمثلة التعليمات البرمجية هذه مصادقة دفتر ملاحظات Azure Databricks الافتراضية. للحصول على تفاصيل حول مصادقة دفتر ملاحظات Azure Databricks الافتراضية، راجع استخدام Databricks SDK ل Python من دفتر ملاحظات Azure Databricks. للحصول على تفاصيل حول المصادقة الافتراضية خارج دفاتر الملاحظات، راجع مصادقة Databricks SDK ل Python باستخدام حساب Azure Databricks أو مساحة العمل الخاصة بك.

للحصول على أمثلة تعليمات برمجية إضافية، راجع الأمثلة في Databricks SDK لمستودع Python في GitHub. راجع أيضًا:

إنشاء نظام مجموعة

ينشئ مثال التعليمات البرمجية هذا مجموعة مع إصدار Databricks Runtime المحدد ونوع عقدة نظام المجموعة. تحتوي هذه المجموعة على عامل واحد، وسيتم إنهاء المجموعة تلقائيا بعد 15 دقيقة من وقت الخمول.

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

print("Attempting to create cluster. Please wait...")

c = w.clusters.create_and_wait(
  cluster_name             = 'my-cluster',
  spark_version            = '12.2.x-scala2.12',
  node_type_id             = 'Standard_DS3_v2',
  autotermination_minutes  = 15,
  num_workers              = 1
)

print(f"The cluster is now ready at " \
      f"{w.config.host}#setting/clusters/{c.cluster_id}/configuration\n")

حذف مجموعة بشكل دائم

يحذف مثال التعليمات البرمجية هذا نظام المجموعة بمعرف نظام المجموعة المحدد من مساحة العمل بشكل دائم.

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

c_id = input('ID of cluster to delete (for example, 1234-567890-ab123cd4): ')

w.clusters.permanent_delete(cluster_id = c_id)

قم بإنشاء وظيفة

ينشئ مثال التعليمات البرمجية هذا مهمة Azure Databricks التي تشغل دفتر الملاحظات المحدد على نظام المجموعة المحدد. أثناء تشغيل التعليمات البرمجية، فإنه يحصل على مسار دفتر الملاحظات الحالي، ومعرف نظام المجموعة الحالي، وإعدادات المهمة ذات الصلة من المستخدم في المحطة الطرفية.

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.jobs import Task, NotebookTask, Source

w = WorkspaceClient()

job_name            = input("Some short name for the job (for example, my-job): ")
description         = input("Some short description for the job (for example, My job): ")
existing_cluster_id = input("ID of the existing cluster in the workspace to run the job on (for example, 1234-567890-ab123cd4): ")
notebook_path       = input("Workspace path of the notebook to run (for example, /Users/someone@example.com/my-notebook): ")
task_key            = input("Some key to apply to the job's tasks (for example, my-key): ")

print("Attempting to create the job. Please wait...\n")

j = w.jobs.create(
  name = job_name,
  tasks = [
    Task(
      description = description,
      existing_cluster_id = existing_cluster_id,
      notebook_task = NotebookTask(
        base_parameters = dict(""),
        notebook_path = notebook_path,
        source = Source("WORKSPACE")
      ),
      task_key = task_key
    )
  ]
)

print(f"View the job at {w.config.host}/#job/{j.job_id}\n")

إنشاء مهمة تستخدم الحوسبة بلا خادم

هام

الحوسبة بلا خادم لسير العمل في المعاينة العامة. للحصول على معلومات حول الأهلية والتمكين، راجع تمكين المعاينة العامة للحوسبة بدون خادم.

ينشئ المثال التالي مهمة تستخدم حساب بلا خادم لسير العمل:

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.jobs import NotebookTask, Source, Task

w = WorkspaceClient()

j = w.jobs.create(
  name = "My Serverless Job",
  tasks = [
    Task(
      notebook_task = NotebookTask(
      notebook_path = "/Users/user@databricks.com/MyNotebook",
      source = Source("WORKSPACE")
      ),
      task_key = "MyTask",
   )
  ]
)

سرد المجموعات على مستوى الحساب

يسرد مثال التعليمات البرمجية هذا أسماء العرض لجميع المجموعات المتوفرة داخل حساب Azure Databricks.

from databricks.sdk import AccountClient

a = AccountClient()

for g in a.groups.list():
  print(g.display_name)

الاختبار

لاختبار التعليمات البرمجية الخاصة بك، استخدم أطر عمل اختبار Python مثل pytest. لاختبار التعليمات البرمجية الخاصة بك في ظل ظروف محاكاة دون استدعاء نقاط نهاية Azure Databricks REST API أو تغيير حالة حسابات Azure Databricks أو مساحات العمل الخاصة بك، استخدم مكتبات محاكاة Python مثل unittest.mock.

على سبيل المثال، بالنظر إلى الملف التالي المسمى helpers.py الذي يحتوي على دالة create_cluster تقوم بإرجاع معلومات حول نظام المجموعة الجديد:

# helpers.py

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.compute import ClusterDetails

def create_cluster(
  w: WorkspaceClient,
  cluster_name:            str,
  spark_version:           str,
  node_type_id:            str,
  autotermination_minutes: int,
  num_workers:             int
) -> ClusterDetails:
  response = w.clusters.create(
    cluster_name            = cluster_name,
    spark_version           = spark_version,
    node_type_id            = node_type_id,
    autotermination_minutes = autotermination_minutes,
    num_workers             = num_workers
  )
  return response

وبالنظر إلى الملف التالي المسمى main.py الذي يستدعي الدالة create_cluster :

# main.py

from databricks.sdk import WorkspaceClient
from helpers import *

w = WorkspaceClient()

# Replace <spark-version> with the target Spark version string.
# Replace <node-type-id> with the target node type string.
response = create_cluster(
  w = w,
  cluster_name            = 'Test Cluster',
  spark_version           = '<spark-version>',
  node_type_id            = '<node-type-id>',
  autotermination_minutes = 15,
  num_workers             = 1
)

print(response.cluster_id)

يختبر الملف التالي المسمى test_helpers.py ما إذا كانت الدالة create_cluster ترجع الاستجابة المتوقعة. بدلا من إنشاء نظام مجموعة في مساحة العمل الهدف، يقوم هذا الاختبار بالسخرية من كائن WorkspaceClient ، ويحدد إعدادات الكائن المقلد، ثم يمرر الكائن المقلد إلى create_cluster الوظيفة. ثم يتحقق الاختبار ما إذا كانت الدالة ترجع المعرف المتوقع لنظام المجموعة المقلدة الجديد.

# test_helpers.py

from databricks.sdk import WorkspaceClient
from helpers import *
from unittest.mock import create_autospec # Included with the Python standard library.

def test_create_cluster():
  # Create a mock WorkspaceClient.
  mock_workspace_client = create_autospec(WorkspaceClient)

  # Set the mock WorkspaceClient's clusters.create().cluster_id value.
  mock_workspace_client.clusters.create.return_value.cluster_id = '123abc'

  # Call the actual function but with the mock WorkspaceClient.
  # Replace <spark-version> with the target Spark version string.
  # Replace <node-type-id> with the target node type string.
  response = create_cluster(
    w = mock_workspace_client,
    cluster_name            = 'Test Cluster',
    spark_version           = '<spark-version>',
    node_type_id            = '<node-type-id>',
    autotermination_minutes = 15,
    num_workers             = 1
  )

  # Assert that the function returned the mocked cluster ID.
  assert response.cluster_id == '123abc'

لتشغيل هذا الاختبار، قم بتشغيل pytest الأمر من جذر مشروع التعليمات البرمجية، والذي يجب أن ينتج عنه نتائج اختبار مشابهة للآتي:

$ pytest
=================== test session starts ====================
platform darwin -- Python 3.12.2, pytest-8.1.1, pluggy-1.4.0
rootdir: <project-rootdir>
collected 1 item

test_helpers.py . [100%]
======================== 1 passed ==========================

الموارد الإضافية

لمزيد من المعلومات، راجع: