مشاركة عبر


تجاوز إعدادات مهام الوظيفة في حزم أصول Databricks

توضح هذه المقالة كيفية تجاوز إعدادات مهام مهمة Azure Databricks في حزم أصول Databricks. راجع ما هي حزم أصول Databricks؟

في ملفات تكوين حزمة Azure Databricks، يمكنك استخدام task التعيين داخل تعريف الوظيفة للانضمام إلى إعدادات مهام الوظيفة في تعيين المستوى resources الأعلى مع إعدادات مهمة الوظيفة في targets التعيين، على سبيل المثال (تشير علامات الحذف إلى محتوى محذف، للإيجاز):

# ...
resources:
  jobs:
    <some-unique-programmatic-identifier-for-this-job>:
      # ...
      tasks:
        - task_key: <some-unique-programmatic-identifier-for-this-task>
          # Task settings.

targets:
  <some-unique-programmatic-identifier-for-this-target>:
    resources:
      jobs:
        <the-matching-programmatic-identifier-for-this-job>:
          # ...
          tasks:
            - task_key: <the-matching-programmatic-identifier-for-this-key>
              # Any more task settings to join with the settings from the
              # resources mapping for the matching top-level task_key.
          # ...

للانضمام إلى تعيين المستوى resources الأعلى وتعيين targets لنفس task، task يجب تعيين التعيينات task_key إلى نفس القيمة.

إذا تم تعريف أي إعداد مهمة مهمة في كل من تعيين المستوى resources الأعلى وتعيين targets لنفس task، فإن الإعداد في targets التعيين له الأسبقية على الإعداد في تعيين المستوى resources الأعلى.

مثال 1: إعدادات مهمة الوظيفة المعرفة في تعيينات موارد متعددة وبدون تعارضات في الإعدادات

في هذا المثال، spark_version في تعيين المستوى resources الأعلى يتم دمجه مع node_type_id و num_workers في resources التعيين لتحديد targets إعدادات task_key المسماة my-task (تشير علامات الحذف إلى محتوى محذف، للإيجاز):

# ...
resources:
  jobs:
    my-job:
      name: my-job
      tasks:
        - task_key: my-key
          new_cluster:
            spark_version: 13.3.x-scala2.12

targets:
  development:
    resources:
      jobs:
        my-job:
          name: my-job
          tasks:
            - task_key: my-task
              new_cluster:
                node_type_id: Standard_DS3_v2
                num_workers: 1
          # ...

عند تشغيل databricks bundle validate هذا المثال، يكون الرسم البياني الناتج كما يلي (تشير علامات الحذف إلى محتوى محذف، للإيجاز):

{
  "...": "...",
  "resources": {
    "jobs": {
      "my-job": {
        "tasks": [
          {
            "new_cluster": {
              "node_type_id": "Standard_DS3_v2",
              "num_workers": 1,
              "spark_version": "13.3.x-scala2.12"
            },
            "task-key": "my-task"
          }
        ],
        "...": "..."
      }
    }
  }
}

مثال 2: إعدادات مهمة مهمة متعارضة محددة في تعيينات موارد متعددة

في هذا المثال، spark_versionيتم تعريف و num_workers في كل من تعيين المستوى resources الأعلى وفي resources التعيين في targets. spark_version وفي num_workersresources التعيين في targets لها الأسبقية على spark_version و num_workers في تعيين المستوى resources الأعلى. يحدد هذا إعدادات المسماة task_keymy-task (تشير علامات الحذف إلى محتوى محذف، للإيجاز):

# ...
resources:
  jobs:
    my-job:
      name: my-job
      tasks:
        - task_key: my-task
          new_cluster:
            spark_version: 13.3.x-scala2.12
            node_type_id: Standard_DS3_v2
            num_workers: 1

targets:
  development:
    resources:
      jobs:
        my-job:
          name: my-job
          tasks:
            - task_key: my-task
              new_cluster:
                spark_version: 12.2.x-scala2.12
                num_workers: 2
          # ...

عند تشغيل databricks bundle validate هذا المثال، يكون الرسم البياني الناتج كما يلي (تشير علامات الحذف إلى محتوى محذف، للإيجاز):

{
  "...": "...",
  "resources": {
    "jobs": {
      "my-job": {
        "tasks": [
          {
            "new_cluster": {
              "node_type_id": "Standard_DS3_v2",
              "num_workers": 2,
              "spark_version": "12.2.x-scala2.12"
            },
            "task_key": "my-task"
          }
        ],
        "...": "..."
      }
    }
  }
}