Dela via


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_taskfinns 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-IDpipeline-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.