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.