Megosztás a következőn keresztül:


Tevékenységek hozzáadása feladatokhoz a Databricks-eszközcsomagokban

Ez a cikk példákat tartalmaz az Azure Databricks-feladatokhoz a Databricks-eszközcsomagokban felvehető különböző típusú feladatokra. Lásd: Mik azok a Databricks-eszközcsomagok?.

A legtöbb feladattevékenység-típus rendelkezik tevékenységspecifikus paraméterekkel a támogatott beállítások között, de megadhat olyan feladatparamétereket is, amelyek átadva vannak a tevékenységeknek. A dinamikus értékhivatkozások támogatottak a feladatparaméterek esetében, amelyek lehetővé teszik a feladatok közötti futtatásra vonatkozó értékek átadását. Lásd : Mi az a dinamikus értékhivatkozás?.

Feljegyzés

Felülbírálhatja a feladatfeladat beállításait. Lásd: Feladatfeladat-beállítások felülbírálása a Databricks-eszközcsomagokban.

Tipp.

Az Databricks CLI használatával gyorsan létrehozhat erőforráskonfigurációt egy meglévő feladathoz a bundle generate job parancs segítségével. Lásd a csomagparancsokat.

Jegyzetfüzet feladat

Ezzel a feladatsal jegyzetfüzetet futtathat.

Az alábbi példa egy jegyzetfüzet-feladatot ad hozzá egy feladathoz, és beállít egy feladatparamétert.my_job_run_id Az üzembe helyezendő jegyzetfüzet elérési útja ahhoz a konfigurációs fájlhoz képest van meghatározva, amelyben ez a feladat meghatározott. A feladat lekéri a jegyzetfüzetet arról a helyről, ahol telepítve van az Azure Databricks-munkaterületen.

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}}'

A feladathoz megadható további leképezésekért tekintse meg a tasks > notebook_task elemet a REST API-referencia POST /api/2.1/jobs/create című részében, amely a munkafolyamat létrehozási kérelméhez kapcsolódó hasznos adatokat tartalmazza, YAML-formátumban kifejezve. A feladatokhoz lásd: Jegyzetfüzet-feladat.

If/else feltétel feladat

A condition_task lehetővé teszi, hogy feladatot vegyen fel a munkájába if/else feltételes logikával. A tevékenység kiértékel egy feltételt, amely más tevékenységek végrehajtásának szabályozására használható. A feltételfeladat végrehajtása nem igényel klasztert, és nem támogatja az újrapróbálkozásokat és az értesítéseket. A ha/más tevékenységről további információt a Elágaztatási logika hozzáadása egy feladathoz a Ha/más tevékenységcímű témakörben talál.

Az alábbi példa egy feltételfeladatot és egy jegyzetfüzet-feladatot tartalmaz, ahol a jegyzetfüzet-feladat csak akkor fut, ha a feladatjavítások száma 5-nél kevesebb.

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

A feladathoz megadható további leképezésekért tekintse meg a tasks > condition_task elemet a REST API-referencia POST /api/2.1/jobs/create című részében, amely a munkafolyamat létrehozási kérelméhez kapcsolódó hasznos adatokat tartalmazza, YAML-formátumban kifejezve.

Minden feladathoz

A for_each_task lehetővé teszi, hogy egy feladatot hozzárendelj egy "for each" ciklus felhasználásával a munkádhoz. A tevékenység minden megadott bemenethez végrehajt egy beágyazott feladatot. A for_each_task-ról további információkért lásd a(z) szakaszt. Használjon egy For each feladatot egy másik feladat ciklusban való futtatásához.

Az alábbi példa egy for_each_task-t ad hozzá egy feladathoz, ahol végigmegy és feldolgozza egy másik feladat értékeit.

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

A feladathoz megadható további leképezésekért tekintse meg a tasks > for_each_task elemet a REST API-referencia POST /api/2.1/jobs/create című részében, amely a munkafolyamat létrehozási kérelméhez kapcsolódó hasznos adatokat tartalmazza, YAML-formátumban kifejezve.

Python-szkriptfeladat

Ezt a feladatot használja Python-fájl futtatására.

Az alábbi példa egy Python-szkriptfeladatot ad hozzá egy feladathoz. Az üzembe helyezendő Python-fájl elérési útja ahhoz a konfigurációs fájlhoz képest van, amelyben a feladat deklarálva van. A művelet letölti a Python fájlt az Azure Databricks munkaterületen lévő telepített helyéről.

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

A feladathoz megadható további leképezésekért tekintse meg a tasks > spark_python_task elemet a REST API-referencia POST /api/2.1/jobs/create című részében, amely a munkafolyamat létrehozási kérelméhez kapcsolódó hasznos adatokat tartalmazza, YAML-formátumban kifejezve. Lásd még : Python-szkriptfeladat feladatokhoz.

Python-kerekes feladat

Ezzel a feladattal futtathat egy Python-kerekes fájlt.

Az alábbi példa egy Python-kerekes feladatot ad hozzá egy feladathoz. A Python kerékfájl üzembe helyezésének elérési útja ahhoz a konfigurációs fájlhoz viszonyítva van megadva, amelyben ez a feladat deklarálva van. Lásd a Databricks Asset Bundles-kódtár függőségeit.

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

A feladathoz megadható további leképezésekért tekintse meg a tasks > python_wheel_task elemet a REST API-referencia POST /api/2.1/jobs/create című részében, amely a munkafolyamat létrehozási kérelméhez kapcsolódó hasznos adatokat tartalmazza, YAML-formátumban kifejezve. Lásd még a Databricks Asset Bundles segítségével Python Wheel fájl fejlesztése és a Python Wheel feladat munkákhoz.

JAR-tevékenység

Ezt a feladatot használja a JAR futtatásához. Hivatkozhat helyi JAR-kódtárakra, illetve egy munkaterületen, egy Unity Catalog-köteten vagy egy külső felhőbeli tárolóhelyen található kódtárakra. Lásd a Databricks Asset Bundles-kódtár függőségeit.

Az alábbi példa jar-feladatot ad hozzá egy feladathoz. A JAR elérési útja a megadott kötet helyére mutat.

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

A feladathoz megadható további leképezésekért tekintse meg a tasks > spark_jar_task elemet a REST API-referencia POST /api/2.1/jobs/create című részében, amely a munkafolyamat létrehozási kérelméhez kapcsolódó hasznos adatokat tartalmazza, YAML-formátumban kifejezve. A feladatokhoz lásd a JAR-feladatot.

SQL-fájl feladat

Ezzel a feladatsal egy munkaterületen vagy egy távoli Git-adattárban található SQL-fájlt futtathat.

Az alábbi példa egy SQL-fájlfeladatot ad hozzá egy feladathoz. Ez az SQL-fájlfeladat a megadott SQL-raktárral futtatja a megadott SQL-fájlt.

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

Az SQL Warehouse azonosítójának lekéréséhez nyissa meg az SQL Warehouse beállításlapját, majd másolja ki a zárójelben található azonosítót a raktár neve után az Áttekintés lap Név mezőjében.

A feladathoz megadható további leképezésekért tekintse meg a tasks > sql_task > file elemet a REST API-referencia POST /api/2.1/jobs/create című részében, amely a munkafolyamat létrehozási kérelméhez kapcsolódó hasznos adatokat tartalmazza, YAML-formátumban kifejezve. Lásd az SQL-feladatot a munkákhoz.

DLT-folyamatfeladat

Ezzel a feladatsal DLT-folyamatot futtathat. Lásd Mi az a DLT?.

Az alábbi példa egy DLT-folyamatfeladatot ad hozzá egy feladathoz. Ez a DLT-folyamat feladat futtatja a megadott folyamatot.

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

A folyamatok azonosítóját a folyamat munkaterületen való megnyitásával és a Folyamatazonosító érték másolásával szerezheti be a folyamat beállításainak lapJának Folyamat részletei lapján.

A feladathoz megadható további leképezésekért tekintse meg a tasks > pipeline_task elemet a REST API-referencia POST /api/2.1/jobs/create című részében, amely a munkafolyamat létrehozási kérelméhez kapcsolódó hasznos adatokat tartalmazza, YAML-formátumban kifejezve. Tekintse meg a DLT-folyamatfeladatot amunkákhoz.

dbt-tevékenység

Ezzel a feladatsal egy vagy több dbt-parancsot futtathat. Lásd: Csatlakozás a dbt Cloudhoz.

Az alábbi példa egy dbt-feladatot ad hozzá egy feladathoz. Ez a dbt-feladat a megadott SQL Warehouse-t használja a megadott dbt-parancsok futtatásához.

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'

Az SQL Warehouse azonosítójának lekéréséhez nyissa meg az SQL Warehouse beállításlapját, majd másolja ki a zárójelben található azonosítót a raktár neve után az Áttekintés lap Név mezőjében.

A feladathoz megadható további leképezésekért tekintse meg a tasks > dbt_task elemet a REST API-referencia POST /api/2.1/jobs/create című részében, amely a munkafolyamat létrehozási kérelméhez kapcsolódó hasznos adatokat tartalmazza, YAML-formátumban kifejezve. Lásd a dbt feladat a munkákhoz.

A Databricks Asset Bundles tartalmaz egy dbt-sql projektsablont is, amely egy dbt-feladattal rendelkező feladatot definiál, valamint az üzembe helyezett dbt-feladatok adatbázisprofiljait. A Databricks-eszközcsomagok sablonjairól további információt Alapértelmezett csomagsablonokcímű témakörben talál.

Feladat futtatása

Ezzel a feladattal futtathat egy másik feladatot.

Az alábbi példában a második feladat tartalmaz egy futási feladatot, amely végrehajtja az első feladatot.

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}

Ez a példa egy helyettesítés használatával kéri le a futtatandó feladat azonosítóját. Ha egy feladat azonosítóját szeretné lekérni a felhasználói felületről, nyissa meg a feladatot a munkaterületen, és másolja az azonosítót a Feladatazonosító értékből a feladatok beállításlapjának Feladat részletei lapján.

A feladathoz megadható további leképezésekért tekintse meg a tasks > run_job_task elemet a REST API-referencia POST /api/2.1/jobs/create című részében, amely a munkafolyamat létrehozási kérelméhez kapcsolódó hasznos adatokat tartalmazza, YAML-formátumban kifejezve.