Delen via


Taaktakeninstellingen overschrijven in Databricks Asset Bundles

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

In Azure Databricks configuratiebestanden van de bundel, kunt u de task-toewijzing in een taakdefinitie gebruiken om de instellingen van een taak in een toewijzing op het hoogste niveau resources samen te voegen met de taakinstellingen in een targets-toewijzing, bijvoorbeeld (weglatingstekens geven weggelaten inhoud aan voor 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 dezelfde taskwilt koppelen, moet de tasktask_key van de toewijzingen worden ingesteld op dezelfde waarde.

Als een taakinstelling is gedefinieerd in zowel de topniveau toewijzing resources als in de targets toewijzing voor dezelfde task, heeft de instelling in de targets toewijzing voorrang op de instelling in de topniveau resources toewijzing.

Voorbeeld 1: Taaktaakinstellingen gedefinieerd in meerdere resourcetoewijzingen en zonder instellingenconflicten

In dit voorbeeld wordt spark_version in de toewijzing op het hoogste niveau resources gecombineerd met node_type_id en num_workers in de toewijzing van resources in targets om de instellingen voor de task_key genoemd my-task te definiƫren (weglatingstekens geven weggelaten inhoud aan, ter 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 databricks bundle validate voor dit voorbeeld uitvoert, 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 werktakeninstellingen gedefinieerd in meerdere hulpbrontoewijzingen

In dit voorbeeld worden spark_versionen num_workers gedefinieerd zowel in de hoogste niveau toewijzing resources als in de resources-toewijzing in targets. spark_version en num_workers in de toewijzing van resources in targets voorrang hebben op spark_version en num_workers in de toewijzing op het hoogste niveau resources. Hiermee definieert u de instellingen voor de task_key met de naam my-task (weglatingstekens geven 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 databricks bundle validate voor dit voorbeeld uitvoert, 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"
          }
        ],
        "...": "..."
      }
    }
  }
}