Добавление задач в задания в пакетах ресурсов Databricks
В этой статье приведены примеры различных типов задач, которые можно добавить в задания Azure Databricks в пакетах ресурсов Databricks. См. раздел "Что такое пакеты ресурсов Databricks?".
Большинство типов задач задания имеют параметры, относящиеся к задачам, среди поддерживаемых параметров, но также можно определить параметры задания, передаваемые в задачи. Динамические ссылки на значения поддерживаются для параметров задания, которые позволяют передавать значения, относящиеся к выполнению задания между задачами. См . статью "Что такое ссылка на динамическое значение?".
Примечание.
Параметры задачи задания можно переопределить. См . раздел "Переопределение параметров задач задания" в пакетах ресурсов Databricks.
Совет
Чтобы быстро создать конфигурацию ресурсов для существующего задания с помощью интерфейса командной строки Databricks, можно использовать bundle generate job
команду. См . команды пакета.
Задача записной книжки
Эта задача используется для запуска записной книжки.
В следующем примере задача записной книжки добавляется в задание и задает параметр задания с именем my_job_run_id
. Путь к развернутой записной книжке относится к файлу конфигурации, в котором объявлена эта задача. Задача получает записную книжку из развернутого расположения в рабочей области Azure Databricks. (Эллипсы указывают на пропущенное содержимое для краткости.)
# ...
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}}"
# ...
# ...
Дополнительные сопоставления, которые можно задать для этой задачи, см tasks > notebook_task
. в полезных данных запроса операции создания задания, как определено в post /api/2.1/jobs/create в справочнике ПО REST API, выраженном в формате YAML. См . задачу "Записная книжка" для заданий.
Задача скрипта Python
Эта задача используется для запуска файла Python.
В следующем примере задача скрипта Python добавляется в задание. Путь к развернутому файлу Python относится к файлу конфигурации, в котором объявлена эта задача. Задача получает файл Python из развернутого расположения в рабочей области Azure Databricks. (Эллипсы указывают на пропущенное содержимое для краткости.)
# ...
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
# ...
# ...
Дополнительные сопоставления, которые можно задать для этой задачи, см tasks > spark_python_task
. в полезных данных запроса операции создания задания, как определено в post /api/2.1/jobs/create в справочнике ПО REST API, выраженном в формате YAML. См. также задачу скрипта Python для заданий.
Задача колеса Python
Эта задача используется для запуска файла колеса Python.
В следующем примере в задание добавляется задача колеса Python. Путь к развернутому файлу колеса Python относится к файлу конфигурации, в котором объявлена эта задача. См . сведения о зависимостях библиотеки пакетов ресурсов Databricks. (Эллипсы указывают на пропущенное содержимое для краткости.)
# ...
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
# ...
# ...
Дополнительные сопоставления, которые можно задать для этой задачи, см tasks > python_wheel_task
. в полезных данных запроса операции создания задания, как определено в post /api/2.1/jobs/create в справочнике ПО REST API, выраженном в формате YAML. См. также статью "Разработка файла колеса Python" с помощью пакетов ресурсов Databricks и задачи Python Wheel для заданий.
ЗАДАЧА JAR
Эта задача используется для запуска JAR-файла. Вы можете ссылаться на локальные библиотеки JAR или те, которые в рабочей области, том каталога Unity или внешнее облачное хранилище. См . сведения о зависимостях библиотеки пакетов ресурсов Databricks.
В следующем примере задача JAR добавляется в задание. Путь к JAR-файлу — указанному расположению тома. (Эллипсы указывают на пропущенное содержимое для краткости.)
# ...
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
# ...
# ...
Дополнительные сопоставления, которые можно задать для этой задачи, см tasks > spark_jar_task
. в полезных данных запроса операции создания задания, как определено в post /api/2.1/jobs/create в справочнике ПО REST API, выраженном в формате YAML. См . задачу JAR для заданий.
Задача файла SQL
Эта задача используется для запуска SQL-файла, расположенного в рабочей области или удаленном репозитории Git.
В следующем примере задача SQL-файла добавляется в задание. Эта задача файла SQL использует указанное хранилище SQL для запуска указанного SQL-файла. (Эллипсы указывают на пропущенное содержимое для краткости.)
# ...
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
# ...
# ...
Чтобы получить идентификатор хранилища SQL, откройте страницу параметров хранилища SQL, а затем скопируйте идентификатор, найденный в скобках после имени хранилища в поле "Имя " на вкладке "Обзор ".
Дополнительные сопоставления, которые можно задать для этой задачи, см tasks > sql_task > file
. в полезных данных запроса операции создания задания, как определено в post /api/2.1/jobs/create в справочнике ПО REST API, выраженном в формате YAML. См . задачу SQL для заданий.
Задача конвейера разностных динамических таблиц
Эта задача используется для запуска конвейера Delta Live Tables. См. раздел "Что такое разностные динамические таблицы?".
В следующем примере в задание добавляется задача конвейера Delta Live Tables. Эта задача конвейера "Динамические таблицы Delta Live Tables" выполняет указанный конвейер. (Эллипсы указывают на пропущенное содержимое для краткости.)
# ...
resources:
jobs:
my-pipeline-job:
name: my-pipeline-job
# ...
tasks:
- task_key: my-pipeline-task
pipeline_task:
pipeline_id: 11111111-1111-1111-1111-111111111111
# ...
# ...
Идентификатор конвейера можно получить, открыв конвейер в рабочей области и скопируйв значение идентификатора конвейера на вкладке сведений о конвейере страницы параметров конвейера.
Дополнительные сопоставления, которые можно задать для этой задачи, см tasks > pipeline_task
. в полезных данных запроса операции создания задания, как определено в post /api/2.1/jobs/create в справочнике ПО REST API, выраженном в формате YAML. См . задачу конвейера delta Live Tables для заданий.
Задача dbt
Эта задача используется для выполнения одной или нескольких команд dbt. См. статью "Подключение к dbt Cloud".
В следующем примере задача dbt добавляется в задание. Эта задача dbt использует указанное хранилище SQL для выполнения указанных команд dbt.
# ...
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"
# ...
# ...
Чтобы получить идентификатор хранилища SQL, откройте страницу параметров хранилища SQL, а затем скопируйте идентификатор, найденный в скобках после имени хранилища в поле "Имя " на вкладке "Обзор ".
Дополнительные сопоставления, которые можно задать для этой задачи, см tasks > dbt_task
. в полезных данных запроса операции создания задания, как определено в post /api/2.1/jobs/create в справочнике ПО REST API, выраженном в формате YAML. См . задачу dbt для заданий.
Пакеты ресурсов Databricks также включают dbt-sql
шаблон проекта, определяющий задание с задачей dbt, а также профили dbt для развернутых заданий dbt. Сведения о шаблонах пакетов активов Databricks см. в разделе "Использование шаблона пакета по умолчанию".
Выполнение задачи задания
Эта задача используется для выполнения другого задания.
В следующем примере содержится задача выполнения задания во втором задании, на котором выполняется первое задание.
# ...
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}
# ...
В этом примере используется подстановка для получения идентификатора выполняемого задания. Чтобы получить идентификатор задания из пользовательского интерфейса, откройте задание в рабочей области и скопируйте идентификатор из значения идентификатора задания на вкладке сведений о задании на странице параметров заданий.
Дополнительные сопоставления, которые можно задать для этой задачи, см tasks > run_job_task
. в полезных данных запроса операции создания задания, как определено в post /api/2.1/jobs/create в справочнике ПО REST API, выраженном в формате YAML.