Установка зависимостей записной книжки
Зависимости Python можно установить для бессерверных записных книжек с помощью боковой панели среды . Эта панель предоставляет одно место для редактирования, просмотра и экспорта требований к библиотеке записной книжки. Эти зависимости можно добавить с помощью базовой среды или отдельно.
Сведения о задачах, отличных от записных книжек, см. в разделе "Настройка сред и зависимостей" для задач, отличных от записных книжек.
Внимание
Не устанавливайте PySpark или любую библиотеку, которая устанавливает PySpark в качестве зависимости от бессерверных записных книжек. Это приведет к остановке сеанса и приведет к ошибке. При этом удалите библиотеку и сбросьте вашусреду.
Настройка базовой среды
Базовая среда — это файл YAML, хранящийся в виде файла рабочей области или том каталога Unity, который указывает дополнительные зависимости среды. Базовые среды можно совместно использовать между записными книжками. Чтобы настроить базовую среду, выполните приведенные действия.
Создайте YAML-файл, определяющий параметры виртуальной среды Python. Следующий пример YAML, основанный на спецификации среды проектов MLflow, определяет базовую среду с несколькими зависимостями библиотеки:
client: "1" dependencies: - --index-url https://pypi.org/simple - -r "/Workspace/Shared/requirements.txt" - my-library==6.1 - "/Workspace/Shared/Path/To/simplejson-3.19.3-py3-none-any.whl" - git+https://github.com/databricks/databricks-cli
Отправьте YAML-файл в виде файла рабочей области или в том каталога Unity. См. раздел Импорт файла или загрузка файлов в том Unity Catalog.
Справа от записной книжки нажмите кнопку, чтобы развернуть панель "Среда ". Эта кнопка отображается только при подключении записной книжки к бессерверным вычислениям.
В поле базовой среды
введите путь отправленного YAML-файла или перейдите к нему и выберите его. Щелкните Применить. При этом устанавливаются зависимости в виртуальной среде записной книжки и перезапускается процесс Python.
Пользователи могут переопределить зависимости, указанные в базовой среде, путем установки зависимостей по отдельности.
Настройка среды записной книжки
Кроме того, можно установить зависимости в записной книжке, подключенной к бессерверным вычислениям, с помощью раздела зависимостей панели среды:
- Справа от записной книжки нажмите кнопку, чтобы развернуть панель "Среда ". Эта кнопка отображается только при подключении записной книжки к бессерверным вычислениям.
- Выберите версию среды в раскрывающемся списке версия среды. Версии бессерверных сред см. в . Databricks рекомендует выбрать последнюю версию, чтобы получить самые up-toфункции записной книжки с датой.
- В разделе "Зависимости" нажмите кнопку "Добавить зависимость" и введите путь к зависимости библиотеки в поле. Можно указать зависимость в любом формате, допустимом в файле requirements.txt .
- Щелкните Применить. При этом устанавливаются зависимости в виртуальной среде записной книжки и перезапускается процесс Python.
Примечание.
Задание с использованием бессерверных вычислений установит спецификацию среды записной книжки перед выполнением кода записной книжки. Это означает, что при планировании записных книжек в качестве заданий не требуется добавлять зависимости. См. статью "Настройка сред и зависимостей".
Просмотр установленных зависимостей и журналов pip
Чтобы просмотреть установленные зависимости, щелкните Установленные в панели Среды для записной книжки. Журналы установки pip для среды записной книжки также доступны, щелкнув журналы pip в нижней части панели.
Сброс окружения
Если записная книжка подключена к бессерверным вычислениям, Databricks автоматически кэширует содержимое виртуальной среды записной книжки. Это означает, что при открытии существующей записной книжки обычно не требуется переустановить зависимости Python, указанные на панели среды , даже если она была отключена из-за неактивности.
Кэширование виртуальной среды Python также применяется к заданиям. Когда задание выполняется, любая задача в задании, которая использует тот же набор зависимостей, что и завершенная задача в этом запуске, становится быстрее, так как необходимые зависимости уже доступны.
Примечание.
Если изменить реализацию пользовательского пакета Python, используемого в задании без сервера, необходимо также обновить номер версии, чтобы задания могли получить последнюю реализацию.
Чтобы очистить кэш среды и выполнить новую установку зависимостей, указанных на панели среды записной книжки, подключенной к бессерверным вычислительным ресурсам, щелкните стрелку рядом с Применить, а затем щелкните Восстановить среду.
Примечание.
Сбросьте виртуальную среду при установке пакетов, которые прерывают или изменяют базовую записную книжку или среду Apache Spark. Отключение записной книжки от бессерверных вычислений и повторное кэширование не обязательно очищает весь кэш среды. Сброс среды переустановит все зависимости, указанные на панели среды , поэтому убедитесь, что проблемные пакеты удалены до сброса.
Настройка сред и зависимостей для задач, не относящихся к записной книжке
Для других поддерживаемых типов задач, таких как скрипт Python, колесо Python или задачи dbt, среда по умолчанию включает установленные библиотеки Python. Сведения о списке установленных библиотек см. в разделе Установленные библиотеки Python используемой версии клиента. Версии бессерверных сред см. в . Если для задачи требуется не установленная библиотека Python, можно установить библиотеку из файлов рабочей области , томов каталога Unity или репозиториев общедоступных пакетов. Чтобы добавить библиотеку при создании или изменении задачи, выполните следующие действия.
В раскрывающемся меню "Среда и библиотеки" щелкните рядом с средой по умолчанию или нажмите кнопку "Добавить новую среду".
Выберите версию среды в раскрывающемся списке "Версия среды". Версии бессерверных сред см. в . Databricks рекомендует выбрать последнюю версию, чтобы получить самые up-toфункции даты.
В диалоговом окне "Настройка среды" нажмите кнопку +Добавить библиотеку.
Выберите тип зависимости в раскрывающемся меню в разделе Библиотеки.
В текстовом поле "Путь к файлу" введите путь к библиотеке.
Для колеса Python в файле рабочей области путь должен быть абсолютным и начинаться с
/Workspace/
.Для Python Wheel в томе Unity Catalog путь должен быть
/Volumes/<catalog>/<schema>/<volume>/<path>.whl
.Для файла
requirements.txt
выберите PyPi и введите-r /path/to/requirements.txt
.
- Нажмите кнопку "Подтвердить" или "Добавить библиотеку", чтобы добавить другую библиотеку.
- Если вы добавляете задачу, нажмите кнопку "Создать задачу". Если вы редактировать задачу, нажмите кнопку "Сохранить".
Настройка репозиториев пакетов Python по умолчанию
Внимание
Эта функция доступна в общедоступной предварительной версии.
Администраторы могут настраивать частные или аутентифицированные репозитории пакетов в рабочей среде в качестве конфигурации pip по умолчанию для серверлесс-ноутбуков и серверлесс-задач. Это позволяет пользователям устанавливать пакеты из внутренних репозиториев Python без явного определения index-url
или extra-index-url
. Однако если эти значения указаны в коде или записной книжке, они имеют приоритет над значениями по умолчанию рабочей области.
Эта конфигурация использует секреты Databricks для безопасного хранения URL-адресов и учетных данных репозитория и управления ими. Администраторы могут настроить настройку с помощью предопределенной области секрета и команд КОМАНДНОй строки Databricks секретов или REST API.
Чтобы настроить репозитории пакетов Python по умолчанию, создайте предопределенную область секрета и настройте разрешения доступа, а затем добавьте секреты репозитория пакетов.
Предопределенное имя области действия секрета
Администраторы рабочей области могут задать URL-адреса индекса pip по умолчанию или дополнительные URL-адреса индекса, а также маркеры проверки подлинности и секреты в заданной области секретов в соответствии с предопределенными ключами:
- Имя области секрета:
databricks-package-management
- Секретный ключ для URL индекса:
pip-index-url
- Секретный ключ для url-адресов дополнительных индексов:
pip-extra-index-urls
- Секретный ключ для содержимого сертификации SSL:
pip-cert
Создайте область секрета
Область секрета можно создать с помощью команд КОМАНДНОй строки Databricks секретов или REST API. После создания секретной области настройте списки управления доступом для предоставления всем пользователям рабочей области прав доступа на чтение. Это гарантирует, что репозиторий остается безопасным и не может быть изменен отдельными пользователями.
databricks secrets create-scope databricks-package-management
databricks secrets put-acl databricks-package-management admins MANAGE
databricks secrets put-acl databricks-package-management users READ
Добавление секретов репозитория пакетов Python
Добавьте информацию о репозитории пакетов Python с помощью предопределенных имен секретных ключей.
# Add index URL.
databricks secrets put-secret --json '{"scope": "databricks-package-management", "key": "pip-index-url", "string_value":"<index-url-value>"}'
# Add extra index URLs. If you have multiple extra index URLs, separate them using white space.
databricks secrets put-secret --json '{"scope": "databricks-package-management", "key": "pip-extra-index-urls", "string_value":"<extra-index-url-1 extra-index-url-2>"}'
# Add cert content. If you want to pip configure a custom SSL certificate, put the cert file content here.
databricks secrets put-secret --json '{"scope": "databricks-package-management", "key": "pip-cert", "string_value":"<cert-content>"}'
Изменение или удаление закрытых секретов репозитория PyPI
Чтобы изменить секреты репозитория PyPI, используйте команду put-secret
. Чтобы удалить секреты репозитория PyPI, используйте delete-secret
, как показано ниже:
# delete secret
databricks secrets delete-secret databricks-package-management pip-index-url
databricks secrets delete-secret databricks-package-management pip-extra-index-urls
databricks secrets delete-secret databricks-package-management pip-cert
# delete scope
databricks secrets delete-scope databricks-package-management
Примечание.
Изменения или удаление секретов применяются после повторного кэширования бессерверных вычислений в записные книжки или повторного запуска бессерверных заданий.