Sdílet prostřednictvím


Přidání úkolů do úloh v balíčcích prostředků Databricks

Tento článek obsahuje příklady různých typů úloh, které můžete přidat do úloh Azure Databricks v sadách prostředků Databricks. Podívejte se, co jsou sady prostředků Databricks?

Většina typů úloh má mezi podporovanými nastaveními parametry specifické pro úkoly, ale můžete také definovat parametry úlohy, které se předávají úkolům. Dynamické odkazy na hodnoty jsou podporovány pro parametry úlohy, které umožňují předávání hodnot specifických pro spuštění úlohy mezi úkoly. Podívejte se, co je odkaz na dynamickou hodnotu?

Poznámka:

Nastavení úloh můžete přepsat. Viz Přepsání nastavení úloh v sadě prostředků Databricks.

Tip

Pokud chcete rychle vygenerovat konfiguraci prostředků pro existující úlohu pomocí rozhraní příkazového řádku Databricks, můžete použít bundle generate job tento příkaz. Viz příkazy sady.

Úkol poznámkového bloku

Tuto úlohu použijete ke spuštění poznámkového bloku.

Následující příklad přidá úkol poznámkového bloku do úlohy a nastaví parametr úlohy s názvem my_job_run_id. Cesta k nasazení poznámkového bloku je relativní vzhledem ke konfiguračnímu souboru, ve kterém je tato úloha deklarována. Úloha získá poznámkový blok z jeho nasazeného umístění v pracovním prostoru Azure Databricks.

resources:
  jobs:
    my-notebook-job:
      name: my-notebook-job
      tasks:
        - task_key: my-notebook-task
          notebook_task:
            notebook_path: ./my-notebook.ipynb
      parameters:
        - name: my_job_run_id
          default: '{{job.run_id}}'

Další mapování, která můžete pro tuto úlohu nastavit, najdete tasks > notebook_task v datové části požadavku operace vytvoření, jak je definováno v post /api/2.1/jobs/create v odkazu na rozhraní REST API vyjádřeném ve formátu YAML. Viz úkol poznámkového bloku pro úlohy.

Úkol s podmínkou if/else

condition_task umožňuje do úlohy přidat úlohu s podmíněnou logikou if/else. Úkol vyhodnotí podmínku, kterou lze použít k řízení provádění jiných úkolů. Úloha podmínky nevyžaduje ke spuštění clusteru a nepodporuje opakování ani oznámení. Další informace o úkolu if/else najdete v tématu Přidání logiky větvení do úlohy pomocíúkolu If/else .

Následující příklad obsahuje podmínkový úkol a úkol sešitového bloku, kde úkol sešitového bloku se spustí pouze v případě, že je počet oprav úloh menší než 5.

resources:
  jobs:
    my-job:
      name: my-job
      tasks:
        - task_key: condition_task
          condition_task:
            op: LESS_THAN
            left: '{{job.repair_count}}'
            right: '5'
        - task_key: notebook_task
          depends_on:
            - task_key: condition_task
              outcome: 'true'
          notebook_task:
            notebook_path: ../src/notebook.ipynb

Další mapování, která můžete pro tuto úlohu nastavit, najdete tasks > condition_task v datové části požadavku operace vytvoření, jak je definováno v post /api/2.1/jobs/create v odkazu na rozhraní REST API vyjádřeném ve formátu YAML.

Pro každý úkol

for_each_task vám umožňuje přidat úkol s smyčkou for each do úlohy. Úloha spustí vnořenou úlohu pro každý zadaný vstup. Další informace o for_each_tasknaleznete v tématu Spuštění parametrizované úlohy Azure Databricks ve smyčce.

Následující příklad přidává for_each_task k úloze, kde probíhá smyčka přes hodnoty jiného úkolu a tyto hodnoty zpracovává.

resources:
  jobs:
    my_job:
      name: my_job
      tasks:
        - task_key: generate_countries_list
          notebook_task:
            notebook_path: ../src/generate_countries_list.ipnyb
        - task_key: process_countries
          depends_on:
            - task_key: generate_countries_list
          for_each_task:
            inputs: '{{tasks.generate_countries_list.values.countries}}'
            task:
              task_key: process_countries_iteration
              notebook_task:
                notebook_path: ../src/process_countries_notebook.ipnyb

Další mapování, která můžete pro tuto úlohu nastavit, najdete tasks > for_each_task v datové části požadavku operace vytvoření, jak je definováno v post /api/2.1/jobs/create v odkazu na rozhraní REST API vyjádřeném ve formátu YAML.

Úloha skriptu Pythonu

Tuto úlohu použijete ke spuštění souboru Pythonu.

Následující příklad přidá úlohu skriptu Pythonu do úlohy. Cesta k souboru Pythonu, který se má nasadit, je relativní vzhledem ke konfiguračnímu souboru, ve kterém je tato úloha deklarována. Úloha získá soubor Pythonu z nasazeného umístění v pracovním prostoru Azure Databricks.

resources:
  jobs:
    my-python-script-job:
      name: my-python-script-job

      tasks:
        - task_key: my-python-script-task
          spark_python_task:
            python_file: ./my-script.py

Další mapování, která můžete pro tuto úlohu nastavit, najdete tasks > spark_python_task v datové části požadavku operace vytvoření, jak je definováno v post /api/2.1/jobs/create v odkazu na rozhraní REST API vyjádřeném ve formátu YAML. Viz také úloha skriptu Pythonu pro úlohy.

Úloha kolečka Pythonu

Tuto úlohu použijete ke spuštění souboru kola Pythonu.

Následující příklad přidá úlohu kolečka Pythonu do úlohy. Cesta k souboru kola Pythonu, který se má nasadit, je relativní vzhledem ke konfiguračnímu souboru, ve kterém je tato úloha deklarována. Viz závislosti knihovny sad prostředků Databricks.

resources:
  jobs:
    my-python-wheel-job:
      name: my-python-wheel-job
      tasks:
        - task_key: my-python-wheel-task
          python_wheel_task:
            entry_point: run
            package_name: my_package
          libraries:
            - whl: ./my_package/dist/my_package-*.whl

Další mapování, která můžete pro tuto úlohu nastavit, najdete tasks > python_wheel_task v datové části požadavku operace vytvoření, jak je definováno v post /api/2.1/jobs/create v odkazu na rozhraní REST API vyjádřeném ve formátu YAML. Viz také Vývoj souboru kola Pythonu pomocí sad prostředků Databricks a úlohy Python Wheel pro úlohy.

Jar – úloha

Tuto úlohu použijete ke spuštění souboru JAR. Můžete odkazovat na místní knihovny JAR nebo knihovny v pracovním prostoru, na svazek katalogu Unity nebo na umístění externího cloudového úložiště. Viz závislosti knihovny sad prostředků Databricks.

Následující příklad přidá úkol JAR do úlohy. Cesta pro soubor JAR se nachází v zadaném umístění svazku.

resources:
  jobs:
    my-jar-job:
      name: my-jar-job
      tasks:
        - task_key: my-jar-task
          spark_jar_task:
            main_class_name: org.example.com.Main
          libraries:
            - jar: /Volumes/main/default/my-volume/my-project-0.1.0-SNAPSHOT.jar

Další mapování, která můžete pro tuto úlohu nastavit, najdete tasks > spark_jar_task v datové části požadavku operace vytvoření, jak je definováno v post /api/2.1/jobs/create v odkazu na rozhraní REST API vyjádřeném ve formátu YAML. Viz úkol JAR pro úlohy.

Úloha souboru SQL

Tuto úlohu použijete ke spuštění souboru SQL umístěného v pracovním prostoru nebo vzdáleném úložišti Git.

Následující příklad přidá úlohu souboru SQL do úlohy. Tato úloha souboru SQL používá zadaný SQL Warehouse ke spuštění zadaného souboru SQL.

resources:
  jobs:
    my-sql-file-job:
      name: my-sql-file-job
      tasks:
        - task_key: my-sql-file-task
          sql_task:
            file:
              path: /Users/someone@example.com/hello-world.sql
              source: WORKSPACE
            warehouse_id: 1a111111a1111aa1

Pokud chcete získat ID SQL Warehouse, otevřete stránku nastavení SQL Warehouse a potom zkopírujte ID nalezené v závorkách za názvem skladu v poli Název na kartě Přehled .

Další mapování, která můžete pro tuto úlohu nastavit, najdete tasks > sql_task > file v datové části požadavku operace vytvoření, jak je definováno v post /api/2.1/jobs/create v odkazu na rozhraní REST API vyjádřeném ve formátu YAML. Viz úloha SQL pro úlohy.

Úloha kanálu Delta Live Tables

Tuto úlohu použijete ke spuštění kanálu Delta Live Tables. Podívejte se, co jsou dynamické tabulky Delta?

Následující příklad přidá do úlohy úlohu kanálu Delta Live Tables. Tato úloha kanálu Delta Live Tables spouští zadaný kanál.

resources:
  jobs:
    my-pipeline-job:
      name: my-pipeline-job
      tasks:
        - task_key: my-pipeline-task
          pipeline_task:
            pipeline_id: 11111111-1111-1111-1111-111111111111

ID kanálu můžete získat tak, že kanál otevřete v pracovním prostoru a zkopírujete hodnotu ID kanálu na kartě Podrobnosti kanálu na stránce nastavení kanálu.

Další mapování, která můžete pro tuto úlohu nastavit, najdete tasks > pipeline_task v datové části požadavku operace vytvoření, jak je definováno v post /api/2.1/jobs/create v odkazu na rozhraní REST API vyjádřeném ve formátu YAML. Viz úloha kanálu Delta Live Tables pro úlohy.

dbt – úloha

Tuto úlohu použijete ke spuštění jednoho nebo více příkazů dbt. Viz Připojení ke službě dbt Cloud.

Následující příklad přidá úkol dbt do úlohy. Tato úloha dbt používá zadaný SQL Warehouse ke spuštění zadaných příkazů dbt.

resources:
  jobs:
    my-dbt-job:
      name: my-dbt-job
      tasks:
        - task_key: my-dbt-task
          dbt_task:
            commands:
              - 'dbt deps'
              - 'dbt seed'
              - 'dbt run'
            project_directory: /Users/someone@example.com/Testing
            warehouse_id: 1a111111a1111aa1
          libraries:
            - pypi:
                package: 'dbt-databricks>=1.0.0,<2.0.0'

Pokud chcete získat ID SQL Warehouse, otevřete stránku nastavení SQL Warehouse a potom zkopírujte ID nalezené v závorkách za názvem skladu v poli Název na kartě Přehled .

Další mapování, která můžete pro tuto úlohu nastavit, najdete tasks > dbt_task v datové části požadavku operace vytvoření, jak je definováno v post /api/2.1/jobs/create v odkazu na rozhraní REST API vyjádřeném ve formátu YAML. Viz úloha dbt pro úlohy.

Sady prostředků Databricks také obsahují dbt-sql šablonu projektu, která definuje úlohu s úkolem dbt a také profily dbt pro nasazené úlohy dbt. Informace o šablonách sad prostředků Databricks najdete v tématu Použití výchozí šablony sady prostředků.

Spustit úlohu úlohy

Tuto úlohu použijete ke spuštění jiné úlohy.

Následující příklad obsahuje úlohu spuštění úlohy ve druhé úloze, která spouští první úlohu.

resources:
  jobs:
    my-first-job:
      name: my-first-job
      tasks:
        - task_key: my-first-job-task
          new_cluster:
            spark_version: '13.3.x-scala2.12'
            node_type_id: 'i3.xlarge'
            num_workers: 2
          notebook_task:
            notebook_path: ./src/test.py
    my_second_job:
      name: my-second-job
      tasks:
        - task_key: my-second-job-task
          run_job_task:
            job_id: ${resources.jobs.my-first-job.id}

Tento příklad používá náhradu k načtení ID úlohy ke spuštění. Pokud chcete získat ID úlohy z uživatelského rozhraní, otevřete úlohu v pracovním prostoru a zkopírujte ID z hodnoty ID úlohy na kartě Podrobnosti úlohy na stránce nastavení úloh.

Další mapování, která můžete pro tuto úlohu nastavit, najdete tasks > run_job_task v datové části požadavku operace vytvoření, jak je definováno v post /api/2.1/jobs/create v odkazu na rozhraní REST API vyjádřeném ve formátu YAML.