Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве вы создадите пакет ресурсов Databricks с нуля. Этот простой пакет состоит из двух записных книжек и определения задания Azure Databricks для запуска этих записных книжек. Затем вы проверяете, развертываете и запускаете задание в рабочей области Azure Databricks. Эти шаги автоматизируют процесс быстрого запуска под названием Создание первого рабочего процесса с помощью заданий Lakeflow.
Требования
- Databricks CLI версии 0.218.0 или более поздней. Чтобы проверить установленную версию интерфейса командной строки Databricks, выполните команду
databricks -v
. Чтобы установить интерфейс командной строки Databricks, см. статью "Установка или обновление интерфейса командной строки Databricks". - Аутентификация настроена для интерфейса командной строки Databricks. Проверка подлинности U2M подходит для выполнения этих действий в режиме реального времени. См. аутентификацию для Databricks CLI.
- Удаленная рабочая область Databricks должна иметь включенные файлы рабочей области. См. раздел "Что такое файлы рабочей области?".
Шаг 1. Создание пакета
Пакет содержит артефакты, которые требуется развернуть, и параметры для ресурсов, которые требуется запустить.
- Создайте или определите пустой каталог на компьютере разработки.
- Перейдите в пустой каталог в терминале или откройте его в интегрированной среде разработки.
Совет
Вы также можете использовать каталог, содержащий репозиторий, клонированный из Git-провайдера. Это позволяет управлять пакетом с помощью внешнего управления версиями и более легко сотрудничать с другими разработчиками и ИТ-специалистами в проекте.
Если вы решили клонировать репозиторий для этой демонстрации, Databricks рекомендует, чтобы репозиторий был пустым или содержит только основные файлы в нем, например README
и .gitignore
. В противном случае все предварительно существующие файлы в репозитории могут быть ненужно синхронизированы с рабочей областью Azure Databricks.
Шаг 2. Добавление записных книжек в проект
На этом шаге вы добавите в проект две записные книжки. Первая записная книжка получает список популярных имен детей с 2007 года из общедоступных источников данных Госдепартамента Штата Нью-Йорк. Смотрите Имена детей: тренды по имени: начиная с 2007 года на сайте департамента. Затем первая записная книжка сохраняет эти данные в томе Azure Databricks Unity Catalog под именем my-volume
, в схеме default
, в каталоге main
. Вторая записная книжка делает запрос к сохранённым данным и отображает сводные данные о детских именах по имени и полу за 2014 год.
Из корневого каталога создайте первую записную книжку, файл с именем
retrieve-baby-names.py
.Добавьте в файл
retrieve-baby-names.py
следующий код:# Databricks notebook source import requests response = requests.get('http://health.data.ny.gov/api/views/jxy9-yhdk/rows.csv') csvfile = response.content.decode('utf-8') dbutils.fs.put("/Volumes/main/default/my-volume/babynames.csv", csvfile, True)
Создайте вторую записную книжку, файл с именем
filter-baby-names.py
в том же каталоге.Добавьте в файл
filter-baby-names.py
следующий код:# Databricks notebook source babynames = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/Volumes/main/default/my-volume/babynames.csv") babynames.createOrReplaceTempView("babynames_table") years = spark.sql("select distinct(Year) from babynames_table").toPandas()['Year'].tolist() years.sort() dbutils.widgets.dropdown("year", "2014", [str(x) for x in years]) display(babynames.filter(babynames.Year == dbutils.widgets.get("year")))
Шаг 3. Добавление файла схемы конфигурации пакета в проект
Если вы используете интегрированную среду разработки, например Visual Studio Code, PyCharm Professional или IntelliJ IDEA Ultimate, которая поддерживает файлы YAML и файлы схемы JSON, вы можете использовать интегрированную среду разработки, чтобы не только создать файл схемы конфигурации пакета, но и проверить синтаксис и форматирование файла конфигурации пакета проекта.
Visual Studio Code
Добавьте поддержку сервера языка YAML в Visual Studio Code, например путем установки расширения YAML из Visual Studio Code Marketplace.
Создайте файл схемы пакета ресурсов Databricks в формате JSON с помощью интерфейса командной строки Databricks для выполнения команды
bundle schema
и перенаправления выходных данных в JSON-файл. Например, создайте файл с именемbundle_config_schema.json
в текущем каталоге следующим образом:databricks bundle schema > bundle_config_schema.json
На шаге 4 вы добавите следующий комментарий в начало файла конфигурации пакета, который связывает файл конфигурации пакета с указанным файлом схемы JSON:
# yaml-language-server: $schema=bundle_config_schema.json
Примечание.
В предыдущем комментарии, если ваш файл схемы конфигурации Databricks Asset Bundle находится в другом пути, замените
bundle_config_schema.json
на полный путь к вашему файлу схемы.
PyCharm Professional
Создайте файл схемы пакета ресурсов Databricks в формате JSON с помощью интерфейса командной строки Databricks для выполнения команды
bundle schema
и перенаправления выходных данных в JSON-файл. Например, создайте файл с именемbundle_config_schema.json
в текущем каталоге следующим образом:databricks bundle schema > bundle_config_schema.json
Настройте PyCharm для распознавания файла схемы JSON конфигурации пакета, а затем завершите сопоставление схемы JSON, следуя инструкциям в разделе "Настройка пользовательской схемы JSON".
На шаге 4 вы будете использовать PyCharm для создания или открытия файла конфигурации пакета. По соглашению этот файл называется
databricks.yml
.
IntelliJ IDEA Ultimate
Создайте файл схемы пакета ресурсов Databricks в формате JSON с помощью интерфейса командной строки Databricks для выполнения команды
bundle schema
и перенаправления выходных данных в JSON-файл. Например, создайте файл с именемbundle_config_schema.json
в текущем каталоге следующим образом:databricks bundle schema > bundle_config_schema.json
Настройте IntelliJ IDEA, чтобы распознать файл схемы JSON конфигурации пакета, а затем завершить сопоставление схемы JSON, следуя инструкциям в разделе "Настройка пользовательской схемы JSON".
На шаге 4 вы будете использовать IntelliJ IDEA для создания или открытия файла конфигурации пакета. По соглашению этот файл называется
databricks.yml
.
Шаг 4. Добавление файла конфигурации пакета в проект
На этом шаге вы определите, как развернуть и запустить два ноутбука. Для этой демонстрации вы хотите использовать задание Azure Databricks для запуска первой записной книжки, а затем второй записной книжки. Так как первая записная книжка сохраняет данные, а вторая записная книжка запрашивает сохраненные данные, необходимо, чтобы первая записная книжка была завершена до запуска второй записной книжки. Эти цели моделировались в файле конфигурации пакета в проекте.
- В корневом каталоге создайте файл конфигурации пакета, файл с именем
databricks.yml
. - Добавьте следующий код в
databricks.yml
файл, заменив<workspace-url>
на URL-адрес рабочей области, напримерhttps://adb-1234567890123456.7.azuredatabricks.net
. Этот URL-адрес должен соответствовать этому URL-адресу в файле.databrickscfg
:
Совет
Первая строка, начиная с # yaml-language-server
, требуется только в том случае, если интегрированная среда разработки поддерживает ее. Дополнительные сведения см. на шаге 3 выше.
# yaml-language-server: $schema=bundle_config_schema.json
bundle:
name: baby-names
resources:
jobs:
retrieve-filter-baby-names-job:
name: retrieve-filter-baby-names-job
job_clusters:
- job_cluster_key: common-cluster
new_cluster:
spark_version: 12.2.x-scala2.12
node_type_id: Standard_DS3_v2
num_workers: 1
tasks:
- task_key: retrieve-baby-names-task
job_cluster_key: common-cluster
notebook_task:
notebook_path: ./retrieve-baby-names.py
- task_key: filter-baby-names-task
depends_on:
- task_key: retrieve-baby-names-task
job_cluster_key: common-cluster
notebook_task:
notebook_path: ./filter-baby-names.py
targets:
development:
workspace:
host: <workspace-url>
Для настройки заданий сопоставления в объявлении задания соответствуют телу запроса, выраженному в формате YAML, операции создания задания, как описано в POST /api/2.1/jobs/create в справочнике по REST API.
Совет
Вы можете определить, объединить и переопределить параметры для новых кластеров заданий в пакетах с помощью методов, описанных в разделе "Переопределение параметров кластера" в пакетах ресурсов Databricks.
Шаг 5. Проверка файла конфигурации пакета проекта
На этом шаге проверяется, действительна ли конфигурация пакета.
Используйте Databricks CLI для выполнения команды следующим образом:
databricks bundle validate
Если возвращается сводка конфигурации пакета, проверка выполнена успешно. Если возвращаются какие-либо ошибки, исправьте ошибки и повторите этот шаг.
При внесении изменений в пакет после этого шага необходимо повторить этот шаг, чтобы проверить, действительна ли конфигурация пакета.
Шаг 6. Развертывание локального проекта в удаленной рабочей области
На этом шаге вы загрузите две локальные записные книжки в удаленную рабочую область Azure Databricks и создадите новое задание Azure Databricks в вашей рабочей области.
Используйте интерфейс командной
bundle deploy
строки Databricks, чтобы выполнить команду следующим образом:databricks bundle deploy -t development
Проверьте, были ли развернуты две локальные ноутбуки: на боковой панели рабочей области Azure Databricks щелкните Workspace.
Щелкните папку "Пользователи >
<your-username>
> .bundle > baby-name>" для файлов разработки>. Две записные книжки должны находиться в этой папке.Проверьте, создано ли задание: на боковой панели рабочей области Azure Databricks щелкните "Задания" и "Конвейеры".
При необходимости выберите фильтры "Задания " и " Принадлежащие мне ".
Щелкните retrieve-filter-baby-names-job.
Перейдите на вкладку Задачи. Должно быть две задачи: задача-получение-имен-детей и задача-фильтрации-имен-детей.
При внесении изменений в пакет после этого шага необходимо повторить шаги 6-7, чтобы проверить, действительна ли конфигурация пакета, а затем повторно развернуть проект.
Шаг 7. Запуск развернутого проекта
На этом шаге вы запустите задание Azure Databricks в рабочей области.
Используйте Databricks CLI для выполнения команды следующим образом:
databricks bundle run -t development retrieve-filter-baby-names-job
Скопируйте значение, которое отображается в терминале и вставьте это значение
Run URL
в веб-браузер, чтобы открыть рабочую область Azure Databricks.В рабочей области Azure Databricks после успешного выполнения двух задач и отображения зеленых заголовков щелкните задачу filter-baby-name-task , чтобы просмотреть результаты запроса.
При внесении изменений в пакет после этого шага необходимо повторить шаги 6–8, чтобы проверить, действительна ли конфигурация пакета, повторно разверните проект и запустите повторно развернутый проект.
Шаг 8. Очистка
На этом этапе вы удаляете две развернутые записные книжки и задание из вашего рабочего пространства.
Используйте Databricks CLI для выполнения команды следующим образом:
databricks bundle destroy
Подтвердите запрос на удаление задания: при появлении запроса на окончательное уничтожение ресурсов, введите
y
и нажмите клавишуEnter
.Подтвердите запрос на удаление записных книжек: при появлении запроса на окончательное уничтожение ранее развернутой папки и всех его файлов, введите
y
и нажмите клавишуEnter
.
При запуске команды bundle destroy
удаляется только развернутое задание и папка, содержащая две развернутые записные книжки. Эта команда не удаляет побочные эффекты, например babynames.csv
файл, созданный первой записной книжкой. Чтобы удалить babybnames.csv
файл, сделайте следующее:
- На боковой панели рабочей области Azure Databricks щелкните "Каталог".
- Нажмите кнопку "Обзор DBFS".
- Щелкните папку FileStore .
- Щелкните стрелку раскрывающегося списка рядом с babynames.csvи нажмите кнопку "Удалить".
- Если вы также хотите удалить пакет с компьютера разработки, вы можете удалить локальный каталог с шага 1.