Lägga till uppgifter i jobb i Databricks-tillgångspaket
Den här artikeln innehåller exempel på olika typer av uppgifter som du kan lägga till i Azure Databricks-jobb i Databricks-tillgångspaket. Se Vad är Databricks-tillgångspaket?.
De flesta jobbaktivitetstyper har uppgiftsspecifika parametrar bland de inställningar som stöds, men du kan också definiera jobbparametrar som skickas till aktiviteter. Referenser till dynamiskt värde stöds för jobbparametrar, vilket gör det möjligt att skicka värden som är specifika för jobbkörningen mellan aktiviteter. Se Vad är en referens för dynamiskt värde?.
Kommentar
Du kan åsidosätta jobbaktivitetsinställningarna. Se Åsidosätt jobbinställningar i Databricks-tillgångspaket.
Tips
Om du snabbt vill generera resurskonfiguration för ett befintligt jobb med hjälp av Databricks CLI-kan du använda kommandot bundle generate job
. Se paketkommandon.
Notebook-uppgift
Du använder den här uppgiften för att köra en anteckningsbok.
I följande exempel läggs en anteckningsuppgift till i ett jobb och en jobbparameter med namnet my_job_run_id
. Sökvägen för notebooken som ska distribueras är relativ till konfigurationsfilen där den här uppgiften anges. Uppgiften hämtar notebook-filen från den distribuerade platsen på Azure Databricks-arbetsytan.
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}}'
För ytterligare mappningar som du kan ange för den här uppgiften, se tasks > notebook_task
i payloaden för skapa jobb-operationens begäran som definieras i POST /api/2.1/jobs/create i REST API-referensen, uttryckt i YAML-format. Se Anteckningsbloksuppgift för jobb.
Om/annars-villkorsuppgift
Med condition_task
kan du lägga till en uppgift med villkorslogik för if/else i jobbet. Uppgiften utvärderar ett villkor som kan användas för att styra utförandet av andra uppgifter. Villkorsaktiviteten kräver inte att ett kluster körs och stöder inte återförsök eller meddelanden. Mer information om uppgiften if/else finns i Lägg till förgreningslogik i ett jobb med uppgiften If/else.
Följande exempel innehåller en uppgift med villkor och en anteckningsaktivitetsuppgift, där anteckningsaktivitetsuppgiften bara körs om antalet jobbreparationer är färre än 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
För ytterligare mappningar som du kan ange för den här uppgiften, se tasks > condition_task
i payloaden för skapa jobb-operationens begäran som definieras i POST /api/2.1/jobs/create i REST API-referensen, uttryckt i YAML-format.
För varje uppgift
Med for_each_task
kan du lägga till en uppgift med en för varje-loop i ditt jobb. Uppgiften kör en kapslad uppgift för varje ingång som ges. Mer information om for_each_task
finns i . Använd en For each
-uppgift för att köra en annan uppgift i en loop.
I följande exempel läggs en for_each_task
till i ett jobb, där det loopar över värdena för en annan uppgift och bearbetar dem.
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
För ytterligare mappningar som du kan ange för den här uppgiften, se tasks > for_each_task
i payloaden för skapa jobb-operationens begäran som definieras i POST /api/2.1/jobs/create i REST API-referensen, uttryckt i YAML-format.
Python-skriptuppgift
Du använder den här uppgiften för att köra en Python-fil.
I följande exempel läggs en Python-skriptaktivitet till i ett jobb. Sökvägen för Python-filen som ska distribueras är relativ till konfigurationsfilen där den här uppgiften deklareras. Uppgiften hämtar python-filen från dess distributionsplats i Azure Databricks-arbetsytan.
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
För ytterligare mappningar som du kan ange för den här uppgiften, se tasks > spark_python_task
i payloaden för skapa jobb-operationens begäran som definieras i POST /api/2.1/jobs/create i REST API-referensen, uttryckt i YAML-format. Se även Python-skriptuppgift för jobb.
Python Wheel-aktivitet
Du använder den här uppgiften för att köra en Python wheel-fil.
I exemplet nedan läggs en Pythonhjulsaktivitet till i ett jobb. Sökvägen för Python-hjulfilsfilen som ska distribueras är relativ till konfigurationsfilen där denna uppgift anges. Se Biblioteksberoenden för Databricks-resurspaket.
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
För ytterligare mappningar som du kan ange för den här uppgiften, se tasks > python_wheel_task
i payloaden för skapa jobb-operationens begäran som definieras i POST /api/2.1/jobs/create i REST API-referensen, uttryckt i YAML-format. Se även Utveckla en Python-hjulfil med databricks-tillgångspaket och Python Wheel-uppgift för jobb.
JAR-uppgift
Du använder den här uppgiften för att köra en JAR-fil. Du kan referera till lokala JAR-bibliotek eller de på en arbetsyta, en Unity Catalog-volym eller en extern molnlagringsplats. Se Beroenden för Databricks-tillgångspaketsbibliotek.
I följande exempel läggs en JAR-uppgift till i ett jobb. Sökvägen för JAR-filen leder till den angivna volymplatsen.
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
För ytterligare mappningar som du kan ange för den här uppgiften, se tasks > spark_jar_task
i payloaden för skapa jobb-operationens begäran som definieras i POST /api/2.1/jobs/create i REST API-referensen, uttryckt i YAML-format. Se JAR-task för jobb.
SQL-filaktivitet
Du använder den här uppgiften för att köra en SQL-fil som finns på en arbetsyta eller en fjärransluten Git-lagringsplats.
I det följande exemplet lägger man till en SQL-filaktivitet i ett jobb. Den här SQL-filuppgiften använder det angivna SQL-lagret för att köra den angivna SQL-filen.
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
Om du vill hämta ett SQL-lagers ID öppnar du inställningssidan för SQL-lagret och kopierar sedan det ID som finns inom parenteser efter namnet på lagret i fältet Namn på fliken Översikt.
För ytterligare mappningar som du kan ange för den här uppgiften, se tasks > sql_task > file
i payloaden för skapa jobb-operationens begäran som definieras i POST /api/2.1/jobs/create i REST API-referensen, uttryckt i YAML-format. Se SQL-uppgift för jobb.
DLT-pipelineuppgift
Du använder den här uppgiften för att köra en DLT-pipeline. Se Vad är DLT?.
I följande exempel lägger man till en DLT-pipelinetjänst i ett jobb. Den här DLT-pipelineaktiviteten kör den angivna pipelinen.
resources:
jobs:
my-pipeline-job:
name: my-pipeline-job
tasks:
- task_key: my-pipeline-task
pipeline_task:
pipeline_id: 11111111-1111-1111-1111-111111111111
Du kan hämta en pipelines ID genom att öppna pipelinen på arbetsytan och kopiera värdet pipeline-ID på pipeline-information-fliken på pipelinens inställningssida.
För ytterligare mappningar som du kan ange för den här uppgiften, se tasks > pipeline_task
i payloaden för skapa jobb-operationens begäran som definieras i POST /api/2.1/jobs/create i REST API-referensen, uttryckt i YAML-format. Se DLT-pipelinesuppgift för jobb.
dbt-uppgift
Du använder den här uppgiften för att köra ett eller flera dbt-kommandon. Se Ansluta till dbt Cloud.
I följande exempel läggs en dbt-uppgift till i ett jobb. Den här dbt-aktiviteten använder det angivna SQL-lagret för att köra de angivna dbt-kommandona.
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'
Om du vill hämta ett SQL-lagers ID öppnar du inställningssidan för SQL-lagret och kopierar sedan det ID som finns inom parenteser efter namnet på lagret i fältet Namn på fliken Översikt.
För ytterligare mappningar som du kan ange för den här uppgiften, se tasks > dbt_task
i payloaden för skapa jobb-operationens begäran som definieras i POST /api/2.1/jobs/create i REST API-referensen, uttryckt i YAML-format. Se dbt-uppgift för jobb.
Databricks-tillgångspaket innehåller också en dbt-sql
projektmall som definierar ett jobb med en dbt-uppgift samt dbt-profiler för distribuerade dbt-jobb. Information om Databricks Asset Bundles-mallar kan hittas i Standardpaketmallar.
Köra arbetsuppgift
Du använder den här uppgiften för att köra ett annat jobb.
Följande exempel innehåller en körningsjobbaktivitet i det andra jobbet som kör det första jobbet.
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}
I det här exemplet används en substitution för att hämta ID:t för jobbet som ska köras. Om du vill hämta ett jobbs ID från användargränssnittet öppnar du jobbet på arbetsytan och kopierar ID:t från värdet jobb-ID på fliken Jobbinformation på sidan för jobbinställningar.
För ytterligare mappningar som du kan ange för den här uppgiften, se tasks > run_job_task
i payloaden för skapa jobb-operationens begäran som definieras i POST /api/2.1/jobs/create i REST API-referensen, uttryckt i YAML-format.