Поделиться через


Служебная программа библиотеки (dbutils.library) (устаревшая версия)

Примечание.

dbutils.library.install и dbutils.library.installPyPI API удаляются в Databricks Runtime 11.0 и более поздних версий. Большинство команд служебной программы библиотеки устарели. Большинство служебных программ библиотек недоступны в машинном обучении среды выполнения Databricks. Дополнительные сведения dbutils.library.restartPythonсм. в статье "Перезапуск процесса Python" в Azure Databricks.

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

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

Полная документация по функциональным возможностям служебных программ Databricks см . в справочнике по Databricks Utilities (dbutils).

Команды: install, installPyPI, list, restartPython), updateCondaEnv

Служебная программа library позволяет установить библиотеки Python и создать среду в области действия сеанса записной книжки. Библиотеки доступны как в драйвере, так и на исполнителе, поэтому можно ссылаться на них в определяемых пользователем функциях. Это позволяет делать следующее.

  • Зависимости библиотеки записной книжки, организованные в самой записной книжке.
  • Пользователи записных книжек с разными зависимостями библиотек для свободного совместного использования кластера.

Отсоединение записной книжки удаляет эту среду. Однако ее можно создать повторно, перезапустив команды API библиотеки install в записной книжке. Сведения о способе сброса состояния записной книжки без потери среды, см. в API restartPython.

Служебные программы library включены по умолчанию. Таким образом, по умолчанию среда Python для каждой записной книжки изолирована с помощью отдельного исполняемого файла Python, который создается, когда записная книжка подключается к среде и наследует среду Python по умолчанию в кластере. Библиотеки, установленные с помощью сценария init, в среду Python Azure Databricks по-прежнему доступны. Чтобы отключить эту возможность, необходимо установить для свойства spark.databricks.libraryIsolation.enabled значение false.

Этот API совместим с существующей установкой библиотеки на уровне кластера с помощью API пользовательского интерфейса и библиотек. Библиотеки, установленные с помощью этого API, имеют более высокий приоритет, чем библиотеки уровня кластера.

Чтобы получить список доступных команд, выполните dbutils.library.help().

install(path: String): boolean -> Install the library within the current notebook session
installPyPI(pypiPackage: String, version: String = "", repo: String = "", extras: String = ""): boolean -> Install the PyPI library within the current notebook session
list: List -> List the isolated libraries added for the current notebook session via dbutils
restartPython: void -> Restart python process for the current notebook session
updateCondaEnv(envYmlContent: String): boolean -> Update the current notebook's Conda environment based on the specification (content of environment

Команда install (dbutils.library.install)

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

Чтобы отобразить справку для этой команды, выполните dbutils.library.help("install").

В этом примере устанавливается .egg или библиотека .whl в записной книжке.

Внимание

Команда dbutils.library.install удалена в Databricks Runtime 11.0 и более поздних версий.

Databricks рекомендует разместить все команды установки библиотеки в первой ячейке записной книжки и вызвать restartPython в конце этой ячейки. Состояние записной книжки Python сбрасывается после выполнения restartPython. Записная книжка теряет все состояние, включая, но не ограничиваясь локальными переменными, импортированными библиотеками и другими эфемерными состояниями. Поэтому рекомендуется установить библиотеки и сбросить состояние записной книжки в первой ячейке записной книжки.

Допустимыми источниками библиотек являются dbfs, abfss, adl и wasbs.

dbutils.library.install("abfss:/path/to/your/library.egg")
dbutils.library.restartPython() # Removes Python state, but some libraries might not work without calling this command.
dbutils.library.install("abfss:/path/to/your/library.whl")
dbutils.library.restartPython() # Removes Python state, but some libraries might not work without calling this command.

Примечание.

Можно напрямую установить пользовательские файлы wheel с помощью %pip. В следующем примере предполагается, что вы отправили файл wheel библиотеки в DBFS:

%pip install /dbfs/path/to/your/library.whl

Файлы яйцо не поддерживаются pip, а файлы колеса считаются стандартными для сборки и двоичной упаковки для Python. Однако если необходимо использовать файл Egg способом, совместимым с %pip, можно использовать следующее решение:

# This step is only needed if no %pip commands have been run yet.
# It will trigger setting up the isolated notebook environment
%pip install <any-lib>  # This doesn't need to be a real library; for example "%pip install any-lib" would work
import sys
# Assuming the preceding step was completed, the following command
# adds the egg file to the current notebook environment
sys.path.append("/local/path/to/library.egg")

Команда installPyPI (dbutils.library.installPyPI)

При наличии пакета Python Package Index (PyPI), установите его в текущем сеансе записной книжки. Библиотеки, установленные путем вызова этой команды, изолированы между записными книжками.

Чтобы отобразить справку для этой команды, выполните dbutils.library.help("installPyPI").

В этом примере пакет PyPI устанавливается в записную книжку. version, repo и extras являются необязательными. Используйте аргумент extras, чтобы указать дополнительную функцию (дополнительные требования).

dbutils.library.installPyPI("pypipackage", version="version", repo="repo", extras="extras")
dbutils.library.restartPython()  # Removes Python state, but some libraries might not work without calling this command.

Внимание

Команда dbutils.library.installPyPI удалена в Databricks Runtime 11.0 и более поздних версий.

Ключи version и extras не могут входить в строку пакета PyPI. Например, dbutils.library.installPyPI("azureml-sdk[databricks]==1.19.0") недопустимо. Используйте аргументы version и extras, чтобы указать версию и дополнительные сведения, как показано ниже.

dbutils.library.installPyPI("azureml-sdk", version="1.19.0", extras="databricks")
dbutils.library.restartPython()  # Removes Python state, but some libraries might not work without calling this command.

Примечание.

При замене команд dbutils.library.installPyPI на команды %pip интерпретатор Python автоматически перезапускается. Команду install можно выполнить следующим способом:

%pip install azureml-sdk[databricks]==1.19.0

В этом примере указываются требования к библиотеке в одной записной книжке, а библиотеки устанавливаются с помощью %run в другой книжке. Для этого сначала определите библиотеки для установки в записной книжке. В этом примере используется записная книжка с именем InstallDependencies.

dbutils.library.installPyPI("torch")
dbutils.library.installPyPI("scikit-learn", version="1.19.1")
dbutils.library.installPyPI("azureml-sdk", extras="databricks")
dbutils.library.restartPython() # Removes Python state, but some libraries might not work without calling this command.

Затем установите их в записной книжке, которой требуются эти зависимости.

%run /path/to/InstallDependencies # Install the dependencies in the first cell.
import torch
from sklearn.linear_model import LinearRegression
import azureml
...

В этом примере выполняется сброс состояния записной книжки Python с сохранением среды. Этот метод доступен только в записных книжках Python. Например, этот метод можно использовать для перезагрузки библиотек Azure Databricks, предварительно установленных с другой версией:

dbutils.library.installPyPI("numpy", version="1.15.4")
dbutils.library.restartPython()
# Make sure you start using the library in another cell.
import numpy

Этот метод также можно использовать для установки библиотек, например tensorflow, которые требуется загружать при запуске процесса:

dbutils.library.installPyPI("tensorflow")
dbutils.library.restartPython()
# Use the library in another cell.
import tensorflow

Команда list (dbutils.library.list)

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

Чтобы отобразить справку для этой команды, выполните dbutils.library.help("list").

В этом примере перечислены библиотеки, установленные в записной книжке.

dbutils.library.list()

Примечание.

В качестве эквивалента этой команды используется %pip:

%pip freeze

Команда updateCondaEnv (dbutils.library.updateCondaEnv)

Обновляет среду Conda текущей записной книжки по содержимому environment.yml. Этот метод поддерживается только для Databricks Runtime в Conda.

Чтобы отобразить справку для этой команды, выполните dbutils.library.help("updateCondaEnv").

В этом примере обновляется среда Conda текущей записной книжки по содержимому указанной спецификации.

dbutils.library.updateCondaEnv(
"""
channels:
  - anaconda
dependencies:
  - gensim=3.4
  - nltk=3.4
""")