Přidání úkolů do úloh v balíčcích Databricks Asset
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. Viz Co jsou sady prostředků Databricks?
Většina typů úloh má ve svých podporovaných nastaveních parametry specifické pro úkoly, ale můžete také definovat parametry úloh, 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 znamená odkaz na dynamickou hodnotu?
Poznámka:
Nastavení pracovních úkolů 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í Databricks CLI, můžete použít tento příkaz. Viz příkazy balíčku.
Ú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 pro nasazení notebooku je relativní vzhledem ke konfiguračnímu souboru, kde je tento úkol deklarován. Ú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 referenci REST API, vyjádřené 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 cluster ke spuštění a nepodporuje opakované pokusy 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 notebooku, kde se úkol spustí pouze pokud 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 nastavit pro tuto úlohu, najdete v datové části požadavku operace vytvoření úlohy, jak je definováno v POST /api/2.1/jobs/create v referenční příručce k REST API, vyjádřeno ve formátu YAML.
Pro každý úkol
for_each_task
vám umožňuje přidat úkol s cyklem 'for each' do vaší úlohy. Úloha spustí vnořenou úlohu pro každý zadaný vstup. Další informace o for_each_task
naleznete v tématu Použití úlohy For each
ke spuštění jiné úlohy ve smyčce.
Následující příklad přidává for_each_task
k úkolu, kde se iteruje přes hodnoty jiného úkolu a zpracovává je.
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, když se podíváte na tasks > for_each_task
v datové části žádosti operace vytvoření, jak je definováno v POST /api/2.1/jobs/create v referenci REST API, vyjádřené 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 ve formátu Python 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 v tasks > spark_python_task
v datové části požadavku operace vytvoření úlohy, definované jako POST /api/2.1/jobs/create v referenci REST API, ve formátu YAML. Vizte také úloha skriptu Pythonu pro pracovní postupy.
Úloha kolečka Pythonu
Tuto úlohu použijete ke spuštění Python wheel souboru.
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. Podívejte se na závislosti knihovny Databricks Asset Bundles.
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 referenci REST API, vyjádřené ve formátu YAML. Viz také Vytvoření souboru Python wheel s využitím balíčků Databricks Asset Bundles a úkol 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 v externím cloudovém úložišti. Viz závislosti knihovny Databricks Asset Bundles.
Následující příklad přidá úlohu JAR k úloze. Cesta pro soubor JAR vede k určenému 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 požadavku na operaci vytvoření podle definice POST /api/2.1/jobs/create v referenci REST API ve formátu YAML. Podívejte se na úkol JAR přiřazený pracovním úlohám.
Ú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 v tasks > sql_task > file
, v těle požadavku operace vytvoření úlohy, jak je definováno v POST /api/2.1/jobs/create v dokumentaci REST API, vyjádřeném ve formátu YAML. Podívejte se na SQL úloha pro pracovní úkony.
Úloha kanálu DLT
Tuto úlohu použijete ke spuštění potrubí DLT. Podívejte se na Co je DLT.
Následující příklad přidá úlohu pipeline DLT do pracovního úkolu. Tato úloha datového toku DLT spustí zadaný datový tok.
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 'create job', jak je definováno v POST /api/2.1/jobs/create v referenci REST API, která je vyjádřená ve formátu YAML. Viz úloha kanálu DLT 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 referenci REST API, vyjádřené ve formátu YAML. Podívejte se na úlohu dbt pro práce.
Sady prostředků Databricks také obsahují dbt-sql
šablonu projektu, která definuje job s úkolem dbt, a profily dbt pro nasazené dbt úlohy. Informace o šablonách sad prostředků Databricks najdete v tématu Výchozí šablony sad prostředků.
Spustit úlohu
Tuto úlohu použijete ke spuštění jiné úlohy.
Následující příklad obsahuje úlohu ve druhé práci, 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á substituci k načtení ID úlohy, která se má spustit. 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 nastavit pro tuto úlohu, najdete v payloadu požadavku operace vytvoření úlohy, jak je definováno v POST /api/2.1/jobs/create v referenční příručce REST API, vyjádřeno ve formátu YAML.