Интерфейс командной строки Databricks (устаревшая версия)

Внимание

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

Databricks рекомендует использовать Интерфейс командной строки Databricks версии 0.205 или более поздней, а не устаревший интерфейс командной строки Databricks версии 0.18 или ниже. Интерфейс командной строки Databricks версии 0.18 или ниже не поддерживается Databricks. Сведения о databricks CLI версии 0.205 и более поздних версиях см. в разделе "Что такое интерфейс командной строки Databricks?".

Сведения о миграции из Databricks CLI версии 0.18 или ниже в Databricks CLI версии 0.205 или более поздней, см. в статье Databricks CLI.

Устаревший интерфейс командной строки Databricks находится в экспериментальном состоянии. Databricks не планирует новую функцию для устаревшей интерфейса командной строки Databricks в настоящее время.

Устаревший интерфейс командной строки Databricks не поддерживается через каналы поддержки Databricks. Чтобы предоставить отзывы, задать вопросы и сообщить о проблемах, используйте вкладку "Проблемы " в репозитории Command Line для Databricks в GitHub.

Устаревший интерфейс командной строки Databricks (также известный как устаревший интерфейс командной строки Databricks) — это программа, которая предоставляет простой интерфейс для автоматизации платформы Azure Databricks из терминала, командной строки или скриптов автоматизации.

Требования

  • Python 3 — 3.6 и более поздних версий
  • Python 2 — 2.7.9 и более поздних версий

Внимание

В macOS установка Python 2 по умолчанию не реализует протокол TLSv1_2, а при установке Python используется устаревший интерфейс командной строки Databricks с этой установкой Python: AttributeError: 'module' object has no attribute 'PROTOCOL_TLSv1_2' Для установки версии Python с ssl.PROTOCOL_TLSv1_2 используйте Homebrew.

Ограничения

Использование устаревшей интерфейса командной строки Databricks с контейнерами хранилища с поддержкой брандмауэра не поддерживается. Для Databricks рекомендуется использовать Databricks Connect или az storage.

Настройка интерфейса командной строки

В этом разделе описывается настройка устаревшего интерфейса командной строки Databricks.

Установка или обновление интерфейса командной строки

В этом разделе описывается установка или обновление компьютера разработки для запуска устаревшей интерфейса командной строки Databricks.

Установка CLI

Запустите pip install databricks-cli с помощью соответствующей версии pip для установки Python:

pip install databricks-cli

Обновление интерфейса командной строки

Запустите pip install databricks-cli --upgrade с помощью соответствующей версии pip для установки Python:

pip install databricks-cli --upgrade

Чтобы получить список версий устаревшей интерфейса командной строки Databricks, установленной в настоящее время, выполните следующую команду databricks --version:

databricks --version

Настройка проверки подлинности

Прежде чем выполнять устаревшие команды CLI Databricks, необходимо настроить проверку подлинности между устаревшим интерфейсом командной строки Databricks и Azure Databricks. В этом разделе описывается настройка проверки подлинности для устаревшего интерфейса командной строки Databricks.

Для проверки подлинности с помощью устаревшего интерфейса командной строки Databricks можно использовать личный маркер доступа Databricks или маркер Microsoft Entra ID (прежнее название — Azure Active Directory).

Примечание.

В качестве рекомендации по обеспечению безопасности при проверке подлинности с помощью автоматизированных средств, систем, сценариев и приложений Databricks рекомендуется использовать личные маркеры доступа, принадлежащие субъектам-службам, а не пользователям рабочей области. Сведения о создании маркеров для субъектов-служб см. в разделе "Управление маркерами" для субъекта-службы.

Настройка проверки подлинности с помощью маркера Microsoft Entra ID (прежнее название — Azure Active Directory)

Чтобы настроить устаревший интерфейс командной строки Databricks с помощью маркера идентификатора Microsoft Entra, создайте маркер Microsoft Entra ID (прежнее название — Azure Active Directory) и сохраните его в переменной DATABRICKS_AAD_TOKENсреды.

Выполните следующую команду:

databricks configure --aad-token

Команда выдаст следующий запрос:

Databricks Host (should begin with https://):

Введите URL-адрес рабочей области в формате https://adb-<workspace-id>.<random-number>.azuredatabricks.net. Чтобы получить URL-адрес рабочей области см. раздел URL-адрес рабочей области.

После выполнения запроса учетные данные доступа хранятся в файле ~/.databrickscfg в Linux или macOS или %USERPROFILE%\.databrickscfg Windows. Файл содержит запись профиля по умолчанию:

[DEFAULT]
host = <workspace-URL>
token = <Azure-AD-token>

.databrickscfg Если файл уже существует, профиль конфигурации этого файла DEFAULT перезаписывается новыми данными. Чтобы создать профиль конфигурации с другим именем, ознакомьтесь с профилями Подключение ion.

Настройка проверки подлинности с помощью личного маркера доступа Databricks

Чтобы настроить устаревший интерфейс командной строки Databricks для использования личного маркера доступа, выполните следующую команду:

databricks configure --token

Команда начинается с выдачи запроса:

Databricks Host (should begin with https://):

Введите URL-адрес рабочей области в формате https://adb-<workspace-id>.<random-number>.azuredatabricks.net. Чтобы получить URL-адрес рабочей области см. раздел URL-адрес рабочей области.

Команда продолжит работу, выполнив запрос на ввод личного маркера доступа:

Token:

После выполнения запроса учетные данные доступа хранятся в файле ~/.databrickscfg Linux или macOS или %USERPROFILE%\.databrickscfg в Windows. Файл содержит запись профиля по умолчанию:

[DEFAULT]
host = <workspace-URL>
token = <personal-access-token>

.databrickscfg Если файл уже существует, профиль конфигурации этого файла DEFAULT перезаписывается новыми данными. Чтобы создать профиль конфигурации с другим именем, ознакомьтесь с профилями Подключение ion.

Для CLI 0.8.1 и более поздних версий можно изменить путь к этому файлу, задав переменную среды DATABRICKS_CONFIG_FILE.

Linux или macos
export DATABRICKS_CONFIG_FILE=<path-to-file>
Windows
setx DATABRICKS_CONFIG_FILE "<path-to-file>" /M

Внимание

Начиная с CLI 0.17.2, CLI не работает с файлом .netrc. Файл .netrc может присутствовать в среде для других целей, но CLI не будет использовать этот файл .netrc.

CLI 0.8.0 и выше поддерживает следующие переменные среды Azure Databricks:

  • DATABRICKS_HOST
  • DATABRICKS_TOKEN

Параметр переменной среды имеет приоритет над параметром в файле конфигурации.

Проверка настройки аутентификации

Чтобы проверка правильно ли настроить проверку подлинности, можно выполнить следующую команду:

databricks fs ls dbfs:/

В случае успешного выполнения эта команда выводит файлы и каталоги в корне СУБД рабочей области , связанной с DEFAULT вашим профилем.

профили Подключение ion

Устаревшая конфигурация интерфейса командной строки Databricks поддерживает несколько профилей подключений. Ту же установку устаревшей интерфейса командной строки Databricks можно использовать для вызова API в нескольких рабочих областях Azure Databricks.

Чтобы добавить профиль подключения, укажите уникальное имя профиля:

databricks configure [--token | --aad-token] --profile <profile-name>

Файл .databrickscfg содержит соответствующую запись профиля:

[<profile-name>]
host = <workspace-URL>
token = <token>

Чтобы использовать профиль подключения:

databricks <group> <command> --profile <profile-name>

Если аргумент --profile <profile-name> не указан, используется профиль по умолчанию. Если профиль по умолчанию не найден, вам будет предложено настроить CLI с использованием профиля по умолчанию.

Повторная проверка профилей подключений

Чтобы проверка правильность настройки профилей подключений, можно выполнить следующую команду с одним из имен профилей подключения:

databricks fs ls dbfs:/ --profile <profile-name>

В случае успешного выполнения эта команда выводит файлы и каталоги в корне СУБД рабочей области для указанного профиля подключения. Выполните эту команду для каждого профиля подключения, который требуется проверить.

Чтобы просмотреть доступные профили, просмотрите .databrickscfg файл.

Использование CLI

В этом разделе показано, как получить устаревшую справку Databricks CLI, проанализировать устаревшие выходные данные Интерфейса командной строки Databricks и вызвать команды в каждой группе команд.

Отображение справки по группе команд CLI

Вы перечисляете подкоманда для любой группы команд с помощью --help или -h параметра. Например, для перечисления вложенных команд КОМАНДНОй строки DBFS:

databricks fs -h

Отображение справки по подкомандам CLI

Вы перечисляете справку для подкоманда с помощью --help или -h параметра. Например, чтобы получить список справки для субкоманда файлов копирования DBFS, выполните указанные ниже действия.

databricks fs cp -h

Группы команд Псевдонима

Иногда это может быть неудобно для префикса каждого устаревшего вызова Интерфейса командной строки Databricks с именем группы команд, например databricks workspace ls в устаревшем интерфейсе командной строки Databricks. Чтобы упростить использование устаревшего интерфейса командной строки Databricks, можно псевдонимировать группы команд для более коротких команд. Например, чтобы сократить databricks workspace ls до dw ls в Bash, можно добавить alias dw="databricks workspace" в соответствующий профиль Bash. Как правило, этот файл находится здесь: ~/.bash_profile.

Совет

Устаревший интерфейс командной строки Databricks уже используется для псевдонимов databricks fsdbfs; databricks fs ls и dbfs ls эквивалентен.

Использование jq для анализа выходных данных CLI

Некоторые устаревшие команды Cli Databricks выводит ответ JSON из конечной точки API. Иногда бывает полезно проанализировать части JSON, чтобы передать их в другие команды. Например, чтобы скопировать определение задания, необходимо взять settings поле команды get job и использовать это в качестве аргумента для команды создания задания. В этих случаях рекомендуется использовать служебную программу jq.

Например, следующая команда выводит параметры задания с идентификатором 233.

databricks jobs list --output JSON | jq '.jobs[] | select(.job_id == 233) | .settings'

Выходные данные:

{
  "name": "Quickstart",
  "new_cluster": {
    "spark_version": "7.5.x-scala2.12",
    "spark_env_vars": {
      "PYSPARK_PYTHON": "/databricks/python3/bin/python3"
    },
    "num_workers": 8,
    ...
  },
  "email_notifications": {},
  "timeout_seconds": 0,
  "notebook_task": {
    "notebook_path": "/Quickstart"
  },
  "max_concurrent_runs": 1
}

В другом примере следующая команда выводит только имена и идентификаторы всех доступных кластеров в рабочей области:

databricks clusters list --output JSON | jq '[ .clusters[] | { name: .cluster_name, id: .cluster_id } ]'

Выходные данные:

[
  {
    "name": "My Cluster 1",
    "id": "1234-567890-grip123"
  },
  {
    "name": "My Cluster 2",
    "id": "2345-678901-patch234"
  }
]

Например, в macOS можно установить jq с помощью Homebrew или brew install jq Windows с помощью Chocolatey choco install jq. См. сведения об jq в руководстве по jq.

Параметры строки JSON

Строковые параметры обрабатываются по-разному в зависимости от операционной системы.

Linux или macos

Строковые параметры JSON нужно заключать в одинарные кавычки. Например:

'["20180505", "alantest"]'

Windows

Строковые параметры JSON необходимо заключать в двойные кавычки, а перед символами кавычек в строке — добавлять \. Например:

"[\"20180505\", \"alantest\"]"

Устранение неполадок

В следующих разделах приведены советы по устранению распространенных проблем с устаревшим интерфейсом командной строки Databricks.

Использование EOF с databricks configure не работает

Для Databricks CLI 0.12.0 и более поздних версий использование последовательности конца файла (EOF) в скрипте для передачи параметров команде databricks configure не работает. Например, следующий скрипт приводит к тому, что Databricks CLI игнорирует параметры, а сообщение об ошибке не выдается:

# Do not do this.
databricksUrl=<per-workspace-url>
databricksToken=<personal-access-token-or-Azure-AD-token>

databricks configure --token << EOF
$databricksUrl
$databricksToken
EOF

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

  • Используйте один из других программных параметров конфигурации, как описано в статье Настройка аутентификации.
  • Вручную добавьте значения host и token в файл .databrickscfg, как описано в статье Настройка аутентификации.
  • Понизьте версию установки Databricks CLI до 0.11.0 или ниже и повторно запустите скрипт.

Команды CLI