Delen via


Taaktakeninstellingen overschrijven in Databricks Asset Bundles

In dit artikel wordt beschreven hoe u de instellingen voor Azure Databricks-taaktaken in Databricks Asset Bundles overschrijft. Zie Wat zijn Databricks-assetbundels?

In Azure Databricks-bundelconfiguratiebestanden kunt u de task toewijzing in een taakdefinitie gebruiken om de taaktakeninstellingen toe te voegen aan een toewijzing op het hoogste niveau resources met de taakinstellingen in een targets toewijzing, bijvoorbeeld (weglatingstekens geven inhoud aan, kortheid):

# ...
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.
          # ...

Als u de toewijzing op het hoogste niveau resources en de targets toewijzing voor hetzelfde taskwilt samenvoegen, moeten de task toewijzingen task_key worden ingesteld op dezelfde waarde.

Als een taaktaakinstelling is gedefinieerd in zowel de toewijzing op het hoogste niveau als de targets toewijzing voor hetzelfdetask, heeft de instelling in de targets toewijzing voorrang op de instelling in de toewijzing op het hoogste niveauresources.resources

Voorbeeld 1: Taaktaakinstellingen gedefinieerd in meerdere resourcetoewijzingen en zonder instellingenconflicten

In dit voorbeeld spark_version wordt in de toewijzing op het hoogste niveau resources gecombineerd met node_type_id en num_workers in de resources toewijzing targets om de instellingen voor de task_key benoemde naam my-task te definiƫren (weglatingstekens geven de weggelaten inhoud aan voor beknoptheid):

# ...
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
          # ...

Wanneer u voor dit voorbeeld uitvoert databricks bundle validate , ziet de resulterende grafiek er als volgt uit (weglatingstekens geven de weggelaten inhoud aan, ter beknoptheid):

{
  "...": "...",
  "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"
          }
        ],
        "...": "..."
      }
    }
  }
}

Voorbeeld 2: Conflicterende taaktaakinstellingen gedefinieerd in meerdere resourcetoewijzingen

In dit voorbeeld spark_versionnum_workers worden zowel in de toewijzing op het hoogste niveau resources als in de resources toewijzing in targets. spark_versionen num_workers in de toewijzing in targets de resources toewijzing voorrang hebben op spark_version en num_workers in de toewijzing op het hoogste niveauresources. Hiermee definieert u de instellingen voor de task_key benoemde naam my-task (weglatingstekens geven de weggelaten inhoud aan, ter beknoptheid):

# ...
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
          # ...

Wanneer u voor dit voorbeeld uitvoert databricks bundle validate , ziet de resulterende grafiek er als volgt uit (weglatingstekens geven de weggelaten inhoud aan, ter beknoptheid):

{
  "...": "...",
  "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"
          }
        ],
        "...": "..."
      }
    }
  }
}