Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln innehåller exempelkonfiguration för Databricks Asset Bundles-funktioner och vanliga användningsfall för paket.
Kompletta paketexempel, som beskrivs i följande tabell, är tillgängliga på GitHub-lagringsplatsen bundle-examples:
Paketnamn | Beskrivning |
---|---|
dashboard_nyc_taxi | Ett paket med en AI/BI-instrumentpanel och ett jobb som samlar in en ögonblicksbild av instrumentpanelen och skickar den till en prenumerant med e-post |
databricks_app | Ett paket som definierar en Databricks-app |
Utvecklingskluster | Ett paket som definierar och använder ett utvecklingskluster för allmänna ändamål. |
job_read_secret | Ett paket som definierar ett hemligt omfång och ett jobb med en uppgift som läser från den |
uppgifter_med_flera_hjul | Ett paket som definierar och använder ett jobb med flera hjulberoenden |
job_with_run_job_tasks | Ett paket med flera jobb med uppgifter för körningsjobb |
jobb_med_sql_anteckningsbok | Ett paket med ett jobb som använder en SQL Notebook-uppgift |
pipeline_with_schema | Ett paket som definierar ett Unity Catalog-schema och en pipeline som använder det |
private_wheel_packages | Ett paket som använder ett privat hjulpaket från ett jobb |
python_wheel_poetry | Ett paket som bygger en whl med Poetry |
serverlös_jobb | Ett paket som använder serverlös beräkning för att köra ett jobb |
dela_filer_över_paket | Ett paket som innehåller filer som finns utanför paketrotkatalogen. |
spark_jar_task | Ett paket som definierar och använder en Spark JAR-uppgift |
skriv_från_jobb_till_volym | Ett paket som skriver en fil till en Unity Catalog-volym |
Paketscenarier
Det här avsnittet innehåller konfigurationsexempel som visar hur du använder paketmappningar på toppnivå. Se Konfigurationsreferens.
-paket som laddar upp en JAR-fil till Unity Catalog
Du kan ange Unity Catalog-volymer som en artefaktsökväg så att alla artefakter, till exempel JAR-filer och hjulfiler, laddas upp till Unity Catalog-volymer. I följande exempelpaket skapas och laddas en JAR-fil upp till Unity Catalog. Information om mappningen finns i artifact_path
artifact_path. Information om artifacts
finns i artefakter.
bundle:
name: jar-bundle
workspace:
host: https://myworkspace.cloud.databricks.com
artifact_path: /Volumes/main/default/my_volume
artifacts:
my_java_code:
path: ./sample-java
build: 'javac PrintArgs.java && jar cvfm PrintArgs.jar META-INF/MANIFEST.MF PrintArgs.class'
files:
- source: ./sample-java/PrintArgs.jar
resources:
jobs:
jar_job:
name: 'Spark Jar Job'
tasks:
- task_key: SparkJarTask
new_cluster:
num_workers: 1
spark_version: '14.3.x-scala2.12'
node_type_id: 'i3.xlarge'
spark_jar_task:
main_class_name: PrintArgs
libraries:
- jar: ./sample-java/PrintArgs.jar
Jobbkonfiguration
Det här avsnittet innehåller jobbkonfigurationsexempel. Information om jobbkonfiguration finns i jobbet.
Jobb som använder serverlös beräkning
Databricks Asset Bundles stöder jobb som körs på serverlös beräkning. Se Köra lakeflow-jobb med serverlös beräkning för arbetsflöden. För att konfigurera detta kan du antingen utelämna inställningen clusters
för ett jobb med en notebook-uppgift, eller så kan du ange en miljö enligt exemplen nedan. För Python-skript, Python-hjul och dbt-uppgifter krävs environment_key
för serverlös beräkning. Se miljö_nyckel.
# A serverless job (no cluster definition)
resources:
jobs:
serverless_job_no_cluster:
name: serverless_job_no_cluster
email_notifications:
on_failure:
- someone@example.com
tasks:
- task_key: notebook_task
notebook_task:
notebook_path: ../src/notebook.ipynb
# A serverless job (environment spec)
resources:
jobs:
serverless_job_environment:
name: serverless_job_environment
tasks:
- task_key: task
spark_python_task:
python_file: ../src/main.py
# The key that references an environment spec in a job.
# https://docs.databricks.com/api/workspace/jobs/create#tasks-environment_key
environment_key: default
# A list of task execution environment specifications that can be referenced by tasks of this job.
environments:
- environment_key: default
# Full documentation of this spec can be found at:
# https://docs.databricks.com/api/workspace/jobs/create#environments-spec
spec:
client: '1'
dependencies:
- my-library
Jobb med flera hjulfiler
I följande exempelkonfigurationer definieras ett paket som innehåller ett jobb med flera *.whl
filer.
# job.yml
resources:
jobs:
example_job:
name: 'Example with multiple wheels'
tasks:
- task_key: task
spark_python_task:
python_file: ../src/call_wheel.py
libraries:
- whl: ../my_custom_wheel1/dist/*.whl
- whl: ../my_custom_wheel2/dist/*.whl
new_cluster:
node_type_id: i3.xlarge
num_workers: 0
spark_version: 14.3.x-scala2.12
spark_conf:
'spark.databricks.cluster.profile': 'singleNode'
'spark.master': 'local[*, 4]'
custom_tags:
'ResourceClass': 'SingleNode'
# databricks.yml
bundle:
name: job_with_multiple_wheels
include:
- ./resources/job.yml
workspace:
host: https://myworkspace.cloud.databricks.com
artifacts:
my_custom_wheel1:
type: whl
build: poetry build
path: ./my_custom_wheel1
my_custom_wheel2:
type: whl
build: poetry build
path: ./my_custom_wheel2
targets:
dev:
default: true
mode: development
Jobb som använder en requirements.txt fil
I följande exempelkonfiguration definieras ett jobb som använder en requirements.txt fil.
resources:
jobs:
job_with_requirements_txt:
name: 'Example job that uses a requirements.txt file'
tasks:
- task_key: task
job_cluster_key: default
spark_python_task:
python_file: ../src/main.py
libraries:
- requirements: /Workspace/${workspace.file_path}/requirements.txt
Jobb enligt ett schema
I följande exempel visas konfiguration för jobb som körs enligt ett schema. Information om jobbscheman och utlösare finns i Automatisera jobb med scheman och utlösare.
Den här konfigurationen definierar ett jobb som körs dagligen vid en angiven tidpunkt:
resources:
jobs:
my-notebook-job:
name: my-notebook-job
tasks:
- task_key: my-notebook-task
notebook_task:
notebook_path: ./my-notebook.ipynb
schedule:
quartz_cron_expression: '0 0 8 * * ?' # daily at 8am
timezone_id: UTC
pause_status: UNPAUSED
I den här konfigurationen körs jobbet en vecka efter att jobbet senast kördes:
resources:
jobs:
my-notebook-job:
name: my-notebook-job
tasks:
- task_key: my-notebook-task
notebook_task:
notebook_path: ./my-notebook.ipynb
trigger:
pause_status: UNPAUSED
periodic:
interval: 1
unit: WEEKS
Pipelinekonfiguration
Det här avsnittet innehåller exempel på pipelinekonfiguration. Information om pipelinekonfiguration finns i pipeline.
Pipeline som använder serverlös beräkning
Databricks Asset Bundles stöder pipelines som körs på serverlös beräkning. Konfigurera detta genom att ange inställningen för pipeline serverless
till true
. I följande exempelkonfiguration definieras en pipeline som körs på serverlös beräkning och ett jobb som utlöser en uppdatering av pipelinen varje timme.
# A pipeline that runs on serverless compute
resources:
pipelines:
my_pipeline:
name: my_pipeline
target: ${bundle.environment}
serverless: true
catalog: users
libraries:
- notebook:
path: ../src/my_pipeline.ipynb
configuration:
bundle.sourcePath: /Workspace/${workspace.file_path}/src
# This defines a job to refresh a pipeline that is triggered every hour
resources:
jobs:
my_job:
name: my_job
# Run this job once an hour.
trigger:
periodic:
interval: 1
unit: HOURS
email_notifications:
on_failure:
- someone@example.com
tasks:
- task_key: refresh_pipeline
pipeline_task:
pipeline_id: ${resources.pipelines.my_pipeline.id}