Příklady konfigurace sady prostředků
Tento článek obsahuje příklad konfigurace pro funkce sady prostředků Databricks a běžné případy použití sady prostředků.
Tip
Některé příklady v tomto článku i jiné najdete v úložišti bundle-examples.
Úloha, která používá bezserverové výpočetní prostředky
Sady prostředků Databricks podporují úlohy, které běží na bezserverových výpočetních prostředcích. Pokud to chcete nakonfigurovat, můžete buď vynechat clusters
nastavení pro úlohu, nebo můžete zadat prostředí, jak je znázorněno v následujících příkladech.
# 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
Kanál, který používá bezserverové výpočetní prostředky
Sady prostředků Databricks podporují kanály, které běží na bezserverových výpočetních prostředcích. Pokud chcete tuto konfiguraci nakonfigurovat, nastavte nastavení kanálu serverless
na true
hodnotu . Následující příklad konfigurace definuje kanál, který běží na bezserverovém výpočetním prostředí, a úlohu, která aktivuje aktualizaci kanálu každou hodinu.
# 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}
Úloha s poznámkovým blokem SQL
Následující příklad konfigurace definuje úlohu s poznámkovým blokem SQL.
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
Úloha s více soubory kolečka
Následující příklad konfigurace definuje sadu, která obsahuje úlohu s více *.whl
soubory.
# 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
Úloha, která používá soubor requirements.txt
Následující příklad konfigurace definuje úlohu, která používá requirements.txt soubor.
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
Balíček, který nahraje soubor JAR do katalogu Unity
Svazky katalogu Unity můžete zadat jako cestu k artefaktům, aby se všechny artefakty, jako jsou soubory JAR a soubory kol, nahrály do svazků katalogu Unity. Následující příklad sady prostředků nahraje soubor JAR do katalogu Unity. Informace o artifact_path
mapování najdete v tématu 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