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


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

Внимание

Эта документация выведена из использования и может больше не обновляться.

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

Чтобы перейти с версии 0.18 или ниже Databricks CLI на версию 0.205 или выше, смотрите миграцию Databricks CLI.

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

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

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

Требования

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

Внимание

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

Ограничения

Использование устаревшего интерфейса командной строки 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

Чтобы настроить старую версию интерфейса командной строки Databricks с помощью токена Microsoft Entra ID, создайте токен 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 профиль конфигурации перезаписывается новыми данными. Чтобы создать профиль конфигурации с другим именем, см. Профили подключения.

Настройка аутентификации с помощью персонального токена доступа 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 будет перезаписан новыми данными. Чтобы создать профиль конфигурации с другим именем, см. раздел "Connection profiles".

Для 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:/

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

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

Устаревшая конфигурация интерфейса командной строки 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 fs для dbfs; 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 игнорирует параметры, и сообщение об ошибке не возникает:

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

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

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

Команды CLI