Библиотеки Python с областью действия записной книжки

Библиотеки с областью действия записной книжки позволяют создавать, изменять, сохранять, повторно и совместно использовать пользовательские среды Python, относящиеся к записной книжке. При установке библиотеки с областью действия записной книжки доступ к этой библиотеке имеют только текущая записная книжка и все задания, связанные с этой записной книжкой. На другие записные книжки, подключенные к тому же кластеру, это не повлияет.

Библиотеки, область действия которых ограничена записной книжкой, не сохраняются в сеансах. Необходимо переустанавливать библиотеки, область действия которых ограничена записной книжкой, в начале каждого сеанса или при отсоединении записной книжки от кластера.

Databricks рекомендует использовать магическую %pip команду для установки библиотек Python с область записной книжкой.

Записные книжки, запланированные в качестве заданий, можно использовать %pip в записных книжках. Если вам нужно управлять средой Python в записной книжке Scala, SQL или R, используйте магическую %python команду в сочетании с %pip.

При работе с установками библиотеки область записной книжки может возникнуть больше трафика на узел драйвера. Узнайте, насколько большой узел драйвера должен быть при работе с библиотеками записных книжек область?.

Чтобы установить библиотеки для всех записных книжек, подключенных к кластеру, используйте библиотеки кластера. Дополнительные сведения см. в статье Библиотеки кластера.

Примечание.

В 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 рекомендует использовать только библиотеки %pippip с область записной книжкой. Поведение %sh pip и !pip не согласовано в Databricks Runtime 10.4 LTS и ниже.

Известные проблемы

  • В Databricks Runtime 9.1 LTS библиотеки с область записной книжкой несовместимы с заданиями потоковой передачи пакетной передачи. Вместо них рекомендуется использовать библиотеки кластера или ядро IPython.