Как установить библиотеку в кластер Databricks с помощью какой-либо команды в записной книжке?
На самом деле я хочу установить библиотеку в своем кластере Azure databricks, но я не могу использовать метод пользовательского интерфейса. это потому, что каждый раз мой кластер будет меняться, и при переходе я не могу добавить к нему библиотеку с помощью пользовательского интерфейса. Есть ли для этого какая-нибудь служебная команда databricks?
4 ответа
Существуют разные способы установки пакетов в Azure Databricks:
GUI метод
Метод 1: Использование библиотек
Чтобы сделать сторонний или созданный локально код доступным для записных книжек и заданий, выполняемых в ваших кластерах, вы можете установить библиотеку. Библиотеки могут быть написаны на Python, Java, Scala и R. Вы можете загружать библиотеки Java, Scala и Python и указывать на внешние пакеты в репозиториях PyPI, Maven и CRAN.
Шаги по установке сторонних библиотек:
Шаг 1. Создайте кластер Databricks.
Шаг 2: Выберите созданный кластер.
Шаг 3: Выберите библиотеки => Установить новую => Выбрать библиотеку Source = "Maven" => Координаты => Поиск пакетов => Выбрать Maven Central => Найдите требуемый пакет. Пример: (GDAL) => Выбрать требуемую версию (3.0.0) => Установить
Ноутбук методы
Метод 2: Использование сценариев инициализации в кластерной области
Сценарии инициализации в кластере - это сценарии инициализации, определенные в конфигурации кластера. Сценарии инициализации с привязкой к кластеру применяются как к создаваемым вами кластерам, так и к кластерам, созданным для выполнения заданий. Поскольку сценарии являются частью конфигурации кластера, контроль доступа к кластеру позволяет вам контролировать, кто может изменять сценарии.
Шаг 1. Добавьте путь DBFS dbfs:/databricks/scripts/gdal_install.sh в сценарии инициализации кластера
# --- Run 1x to setup the init script. ---
# Restart cluster after running.
dbutils.fs.put("/databricks/scripts/gdal_install.sh","""
#!/bin/bash
sudo add-apt-repository ppa:ubuntugis/ppa
sudo apt-get update
sudo apt-get install -y cmake gdal-bin libgdal-dev python3-gdal""",
True)
Шаг 2: перезапустите кластер после выполнения шага 1 в первый раз.
Метод 3: пакеты Python устанавливаются в контейнер Spark с помощью pip install.
Использование pip для установки библиотеки "psutil".
Метод 4: Библиотечные утилиты
Утилиты библиотеки позволяют устанавливать библиотеки Python и создавать среду, привязанную к сеансу записной книжки. Библиотеки доступны как для драйвера, так и для исполнителей, поэтому вы можете ссылаться на них в UDF. Это позволяет:
Библиотечные зависимости записной книжки будут организованы внутри самой записной книжки. Пользователи ноутбуков с разными зависимостями библиотек могут беспрепятственно совместно использовать кластер.
CLI и методы API
Метод 5: Библиотеки CLI
Вы запускаете подкоманды CLI библиотек Databricks, добавляя их в библиотеки databricks.
databricks libraries -h
Установите JAR из DBFS:
databricks libraries install --cluster-id $CLUSTER_ID --jar dbfs:/test-dir/test.jar
Метод 6: API библиотек
API библиотек позволяет устанавливать и удалять библиотеки и получать статус библиотек в кластере.
Установите библиотеки в кластер. Установка асинхронная - она завершается в фоновом режиме после запроса.2.0/libraries/install
Пример запроса:
{
"cluster_id": "10201-my-cluster",
"libraries": [
{
"jar": "dbfs:/mnt/libraries/library.jar"
},
{
"egg": "dbfs:/mnt/libraries/library.egg"
},
{
"whl": "dbfs:/mnt/libraries/mlflow-0.0.1.dev0-py2-none-any.whl"
},
{
"whl": "dbfs:/mnt/libraries/wheel-libraries.wheelhouse.zip"
},
{
"maven": {
"coordinates": "org.jsoup:jsoup:1.7.2",
"exclusions": ["slf4j:slf4j"]
}
},
{
"pypi": {
"package": "simplejson",
"repo": "https://my-pypi-mirror.com"
}
},
{
"cran": {
"package": "ada",
"repo": "https://cran.us.r-project.org"
}
}
]
}
Если вы хотите устанавливать библиотеки каждый раз при создании нового кластера, вы можете использовать сценарии инициализации в разделе «Дополнительно» пользовательского интерфейса создания кластера. Вам понадобится скрипт bash с инструкциями по установке lib.
Вы можете использовать команду %pip install для установки необходимых библиотек из кода вашего блокнота. В этой документации представлена дополнительная информация о его использовании: https://docs.databricks.com/libraries/notebooks-python-libraries.html . Например:
!pip install requests
Для более старых сред выполнения существовала утилита dbutils.library (https://docs.databricks.com/dev-tools/databricks-utils.html#dbutils-library), но она устарела.
Ответ @CHEEKATLAPRADEEP-MSFT потрясающий! Просто дополнение:
Если вы хотите, чтобы на всех ваших ноутбуках / кластерах были установлены одни и те же библиотеки, вы можете воспользоваться сценариями инициализации с кластерной областью или глобальными (новая функция) сценариями.
В приведенном ниже примере извлекаются пакеты из PyPi:
#!/bin/sh
# Install dependencies
pip install --upgrade boto3 psycopg2-binary requests simple-salesforce
Вы даже можете использовать частный индекс пакета - например, AWS CodeArtifact:
#Install AWS CLI
pip install --upgrade awscli
# Configure pip
aws codeartifact login --region <REGION> --tool pip --domain <DOMAIN> --domain-owner <AWS_ACCOUNT_ID> --repository <REPO>
pip config set global.extra-index-url https://pypi.org/simple
Примечание: профиль экземпляра кластера должен иметь разрешение на получение учетных данных CodeArtifact (
Ваше здоровье