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 inställningar för jobbuppgifter i Databricks-tillgångspaket.
Dricks
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 notebook-fil.
I följande exempel läggs en notebook-uppgift till i ett jobb och en jobbparameter med namnet my_job_run_id
. Sökvägen för notebook-filen som ska distribueras är relativ till konfigurationsfilen där den här uppgiften deklareras. 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 Notebook-uppgift 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 villkorsuppgift och en notebook-aktivitet, där notebook-aktiviteten bara körs om antalet jobbreparationer är mindre ä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 begärans nyttolast för att skapa jobbet som definierats 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 Kör en parameteriserad Azure Databricks-jobbaktivitet 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
Ytterligare mappningar som du kan ange för denna uppgift finns i tasks > for_each_task
i nyttolast för skapa jobb-begäran som definierats 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 distribuerade plats på 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
Ytterligare mappningar som du kan ange för den här uppgiften finns i tasks > spark_python_task
i nyttolasten för begäran om att skapa jobb enligt definition i POST /api/2.1/jobs/create i REST API-referensen, uttryckt i YAML-format. Se även Python-skriptaktivitet för jobb.
Python-hjulaktivitet
Du använder den här uppgiften för att köra en Python-hjulfil.
I följande exempel läggs en Python-hjulaktivitet till i ett jobb. Sökvägen för Python-hjulfilen som ska distribueras är relativ till konfigurationsfilen där den här uppgiften deklareras. Se Beroenden för Biblioteksberoenden för Databricks-tillgångspaket.
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
Ytterligare mappningar som du kan ställa in för den här uppgiften finns i tasks > python_wheel_task
i begärandenyttolasten för skapa jobb-åtgärden enligt definitionen 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 Biblioteksberoenden för Databricks-tillgångspaket.
I följande exempel läggs en JAR-uppgift till i ett jobb. Sökvägen för JAR-filen är 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 du kan ange för den här uppgiften, se tasks > spark_jar_task
i jobbskapningsoperationens begärans nyttolast enligt definitionen i POST /api/2.1/jobs/create i REST API-referensen, uttryckt i YAML-format. Se JAR-uppgift 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 följande exempel läggs en SQL-filaktivitet till 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 ställa in för den här uppgiften, se tasks > sql_task > file
i begärans nyttolast för skapa jobb-operationen som definierats i POST /api/2.1/jobs/create i REST API-referensen, uttryckt i YAML-format. Se SQL-uppgift för jobb.
Delta Live Tables-pipelineuppgift
Du använder den här uppgiften för att köra en Delta Live Tables-pipeline. Se Vad är Delta Live Tables?.
I följande exempel läggs pipeline-uppgiften Delta Live Tables till i en arbetsuppgift. Den här pipelineaktiviteten för Delta Live Tables 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å pipelineinformation fliken på pipelinens inställningssida.
Ytterligare mappningar som du kan ange för den här uppgiften finns i tasks > pipeline_task
i begärans nyttolast för skapa jobboperationen enligt definitionen i POST /api/2.1/jobs/create i REST API-referensen, uttryckt i YAML-format. Se uppgift Delta Live Tables rörledningen 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.
Ytterligare mappningar som du kan ange för den här uppgiften finns i tasks > dbt_task
i begärans nyttolast för att skapa jobben som definierats i POST /api/2.1/jobs/create i referensen till REST API, 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 Mallar för Databricks-tillgångspaket finns i Använda en standardpaketmall.
Köra jobbaktivitet
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 ersättning 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 begärans nyttolast för skapandet av jobboperation enligt definitionen i POST /api/2.1/jobs/create och i REST API-referensen, uttryckt i YAML-format.