Библиотеки Python с областью действия записной книжки
Библиотеки с областью действия записной книжки позволяют создавать, изменять, сохранять, повторно и совместно использовать пользовательские среды Python, относящиеся к записной книжке. При установке библиотеки с областью действия записной книжки доступ к этой библиотеке имеют только текущая записная книжка и все задания, связанные с этой записной книжкой. На другие записные книжки, подключенные к тому же кластеру, это не повлияет.
Библиотеки, область действия которых ограничена записной книжкой, не сохраняются в сеансах. Необходимо переустанавливать библиотеки, область действия которых ограничена записной книжкой, в начале каждого сеанса или при отсоединении записной книжки от кластера.
Databricks рекомендует использовать магическую %pip
команду для установки библиотек Python с областью действия записной книжки.
Записные книжки, запланированные в качестве заданий, можно использовать %pip
в записных книжках. Если вам нужно управлять средой Python в записной книжке Scala, SQL или R, используйте магическую %python
команду в сочетании с %pip
.
При работе с устанавливаемой библиотекой с областью действия записной книжки может возникнуть больше трафика к узлу драйвера. Узнайте , насколько большой узел драйвера должен быть при работе с библиотеками с областью действия записной книжки?.
Чтобы установить библиотеки для всех записных книжек, подключенных к кластеру, используйте библиотеки кластера. Дополнительные сведения см. в статье Библиотеки кластера.
Полный обзор параметров, доступных для установки библиотек Python в Databricks, см. в статье об управлении средой Python.
Примечание.
В Databricks Runtime 10.4 LTS и ниже можно использовать служебную программу библиотеки Azure Databricks. Программа библиотеки поддерживается только в Databricks Runtime, а не Databricks Runtime ML. См. служебную программу библиотеки (dbutils.library) (устаревшую версию).
Управление библиотеками с помощью команд %pip
Команда %pip
эквивалентна команде pip и поддерживает тот же API. В следующих разделах приведены примеры использования команд %pip
для управления средой. Для получения дополнительной информации об установке пакетов Python с использованием pip
см. документацию по установке pip и связанные с ней страницы.
Внимание
- Начиная с команд Databricks Runtime 13.0
%pip
не перезапускать процесс Python автоматически. Если вы устанавливаете новый пакет или обновляете существующий пакет, может потребоваться использоватьdbutils.library.restartPython()
для просмотра новых пакетов. См . статью "Перезапуск процесса Python" в Azure Databricks. - В Databricks Runtime 12.2 LTS и ниже Databricks рекомендует размещать все
%pip
команды в начале записной книжки. Состояние записной книжки сбрасывается после выполнения любой команды%pip
, которая изменяет среду. Если вы создаете методы или переменные Python в записной книжке, а затем используете команды%pip
в более поздней ячейке, эти методы или переменные не сохраняются. - Обновление, изменение или удаление основных пакетов Python (например, IPython) с помощью
%pip
может привести к тому, что некоторые функции перестанут работать должным образом. При возникновении таких проблем сбросьте среду, отключив и повторно присоединив записную книжку или перезапустив кластер.
Установка библиотеки с помощью %pip
%pip install matplotlib
Установка пакета колес Python с помощью %pip
%pip install /path/to/my_package.whl
Удаление библиотеки с помощью %pip
Примечание.
Вы не можете удалить библиотеку, включенную в заметки о выпуске Databricks Runtime, версии и совместимость или библиотеку, установленную в качестве библиотеки кластера. Если установлена версия библиотеки, отличная от версии, входящей в Databricks Runtime или установленной в кластере, можно использовать %pip uninstall
для возврата библиотеки к версии по умолчанию в Databricks Runtime или версии, установленной в кластере, но нельзя использовать команду %pip
для удаления версии библиотеки, входящей в Databricks Runtime или установленной в кластере.
%pip uninstall -y matplotlib
Параметр -y
является обязательным.
Установка библиотеки из системы управления версиями с помощью %pip
%pip install git+https://github.com/databricks/databricks-cli
Вы можете добавить параметры в URL-адрес, чтобы указать такие элементы, как версия или подкаталог Git. Для получения дополнительной информации и примеров использования других систем управления версиями см. Поддержка VCS.
Установка частного пакета с учетными данными, управляемыми секретами Databricks с помощью %pip
PIP поддерживает установку пакетов из частных источников с помощью базовой аутентификации, включая закрытые системы управления версиями и закрытые репозитории пакетов, такие как Nexus и Artifactory. Управление секретами доступно через API секретов Databricks, который позволяет хранить маркеры и пароли аутентификации. Используйте DBUtils API для доступа к секретам из записной книжки. Обратите внимание, что в магических командах можно использовать $variables
.
Чтобы установить пакет из частного репозитория, укажите URL-адрес репозитория с параметром --index-url
до %pip install
или добавьте его в файл конфигурации pip
в ~/.pip/pip.conf
.
token = dbutils.secrets.get(scope="scope", key="key")
%pip install --index-url https://<user>:$token@<your-package-repository>.com/<path/to/repo> <package>==<version> --extra-index-url https://pypi.org/simple/
Аналогичным образом можно использовать управление секретами с помощью магических команд для установки частных пакетов из систем управления версиями.
token = dbutils.secrets.get(scope="scope", key="key")
%pip install git+https://<user>:$token@<gitprovider>.com/<path/to/repo>
Установка пакета из DBFS с помощью %pip
Внимание
Любой пользователь рабочей области может изменять файлы, хранящиеся в DBFS. Azure Databricks рекомендует хранить файлы в рабочих областях или томах каталога Unity.
С помощью %pip
можно установить частный пакет, сохраненный в DBFS.
При отправке в DBFS файл автоматически переименовывается, заменяя пробелы, точки и дефисы символами подчеркивания. Для файлов pip
колес Python требуется, чтобы имя файла использовало периоды в версии (например, 0.1.0) и дефисы вместо пробелов или подчеркивания, поэтому эти имена файлов не изменяются.
%pip install /dbfs/mypackage-0.0.1-py3-none-any.whl
Установка пакета из тома с помощью %pip
Внимание
Эта функция предоставляется в режиме общедоступной предварительной версии.
С помощью Databricks Runtime 13.3 LTS и более поздних версий можно установить %pip
частный пакет, сохраненный в томе.
При отправке файла в том он автоматически переименовывает файл, заменяя пробелы, точки и дефисы подчеркиванием. Для файлов pip
колес Python требуется, чтобы имя файла использовало периоды в версии (например, 0.1.0) и дефисы вместо пробелов или подчеркивания, поэтому эти имена файлов не изменяются.
%pip install /Volumes/<catalog>/<schema>/<path-to-library>/mypackage-0.0.1-py3-none-any.whl
Установка пакета, хранящегося в виде файла рабочей области с помощью %pip
С помощью Databricks Runtime 11.3 LTS и более поздних версий можно установить %pip
частный пакет, сохраненный в виде файла рабочей области.
%pip install /Workspace/<path-to-whl-file>/mypackage-0.0.1-py3-none-any.whl
Сохранение библиотек в файле требований
%pip freeze > /Workspace/shared/prod_requirements.txt
Все подкаталоги в пути к файлу должны уже существовать. Выполнение команды %pip freeze > /Workspace/<new-directory>/requirements.txt
завершится ошибкой, если каталог /Workspace/<new-directory>
еще не существует.
Использование файла требований для установки библиотек
Файл требований содержит список пакетов к установке с помощью pip
. Пример использования файла требований:
%pip install -r /Workspace/shared/prod_requirements.txt
См. Формат файла требований для получения дополнительной информации о requirements.txt
файлах.
Насколько большой узел драйвера должен быть при работе с библиотеками с областью действия записной книжки?
Использование библиотек с областью записной книжки может привести к большему объему трафика на узел драйвера, так как он работает для согласования среды между узлами исполнителя.
При использовании кластера с 10 или более узлами в Databricks рекомендуется использовать следующие спецификации в качестве минимальных требований для узла драйвера:
- Для узла кластера ЦП 100 используйте Standard_DS5_v2.
- Для узла кластера GPU 10 используйте Standard_NC12.
Для кластеров большего объема используйте узел драйвера большего размера.
Можно ли использовать %sh pip
, !pip
или pip
? Что такое разница?
%sh
и !
выполните команду оболочки в записной книжке; прежнее — это вспомогательное магическое действие Databricks, а последнее — функция IPython. pip
— это сокращенное значение %pip
при включении автомагии , которое используется по умолчанию в записных книжках Python Для Azure Databricks.
В Databricks Runtime 11.3 LTS и более поздних %pip
версиях, %sh pip
а !pip
также все установите библиотеку в виде библиотеки Python с областью записной книжки. В Databricks Runtime 10.4 LTS и ниже Databricks рекомендует использовать только библиотеки %pip
с областью действия записной книжки или pip
установить. Поведение %sh pip
и !pip
не согласовано в Databricks Runtime 10.4 LTS и ниже.
Известные проблемы
- В Databricks Runtime 9.1 LTS библиотеки с областью действия записной книжки несовместимы с заданиями потоковой передачи пакетной передачи. Вместо них рекомендуется использовать библиотеки кластера или ядро IPython.