Paketkonfigurationsbeispiele
Dieser Artikel enthält eine Beispielkonfiguration für Databricks Asset-Paketfeatures und allgemeine Paketanwendungsfälle.
Tipp
Einige der Beispiele in diesem Artikel sowie andere finden Sie im Repository für Paketbeispiele.
Auftrag, der serverloses Computing verwendet
Databricks-Ressourcenpakete unterstützen Aufträge, die mit serverlosem Computing ausgeführt werden. Um dies zu konfigurieren, können Sie entweder die clusters
-Einstellung für einen Auftrag weglassen, oder Sie können eine Umgebung angeben, wie in den folgenden Beispielen gezeigt.
# 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.
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:
- cowsay
Pipeline, die serverloses Computing verwendet
Databricks-Ressourcenpakete unterstützen Pipelines, die mit serverlosem Computing ausgeführt werden. Um dies zu konfigurieren, legen Sie die Pipelineeinstellung serverless
auf true
fest. Die folgende Beispielkonfiguration definiert eine Pipeline, die mit serverlosem Computing ausgeführt wird, und einen Auftrag, der eine Aktualisierung der Pipeline jede Stunde auslöst.
# 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}
Auftrag mit einem SQL-Notebook
Die folgende Beispielkonfiguration definiert einen Auftrag mit einem SQL-Notebook.
resources:
jobs:
job_with_sql_notebook:
name: Job to demonstrate using a SQL notebook with a SQL warehouse
tasks:
- task_key: notebook
notebook_task:
notebook_path: ./select.sql
warehouse_id: 799f096837fzzzz4
Auftrag mit mehreren Wheel-Dateien
Die folgende Beispielkonfiguration definiert ein Paket, das einen Auftrag mit mehreren *.whl
-Dateien enthält.
# 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
Auftrag, der eine „requirements.txt“-Datei verwendet
Die folgende Beispielkonfiguration definiert einen Auftrag, der eine „requirements.txt“-Datei verwendet.
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
Paket, das eine JAR-Datei in Unity Catalog hochlädt
Sie können Unity Catalog-Volumes als Artefaktpfad angeben, sodass alle Artefakte, z. B. JAR-Dateien und Wheel-Dateien, in Unity Catalog-Volumes hochgeladen werden. Im folgenden Beispielpaket wird eine JAR-Datei in Unity Catalog hochgeladen. Informationen zur artifact_path
-Zuordnung finden Sie unter artifact_path.
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