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


Служебные программы Databricks с Databricks Connect для Python

Заметка

В этой статье рассматривается Databricks Connect для Databricks Runtime 13.3 LTS и более поздних версий.

В этой статье описывается, как использовать служебные программы Databricks с Databricks Connect для Python. Databricks Connect позволяет подключать популярные интегрированные среды разработки, ноутбук-серверы и пользовательские приложения к кластерам Azure Databricks. См. Что такое Databricks Connect?. Сведения о версии Scala этой статьи см. в разделе Служебные программы Databricks с Databricks Connect для Scala.

Заметка

Прежде чем начать использовать Databricks Connect, необходимо настроить клиент Databricks Connect.

Вы используете Databricks Connect для доступа к служебным программам Databricks следующим образом:

  • Используйте переменную WorkspaceClient класса dbutils для доступа к Служебным программам Databricks. Класс WorkspaceClient принадлежит пакету SDK Databricks для Python и включен в Databricks Connect.
  • Используйте dbutils.fs для доступа к служебной программе Databricks utilities fs.
  • Используйте dbutils.secrets для доступа к утилите секретных данных Databricks .
  • Никакие функции служебных программ Databricks, кроме перечисленных выше, недоступны через dbutils.

Совет

Вы также можете использовать включенный пакет SDK Databricks для Python для доступа к любому доступному REST API Databricks, а не только к предыдущим API-интерфейсам служебных программ Databricks. См. databricks-sdk в PyPI.

Чтобы инициализировать WorkspaceClient, необходимо предоставить достаточную информацию для аутентификации SDK Databricks в рамках рабочей области. Например, можно:

  • Жестко закодируйте URL-адрес рабочей области и маркер доступа прямо в коде, и затем инициализируйте WorkspaceClient следующим образом. Хотя этот параметр поддерживается, Databricks не рекомендует этот параметр, так как он может предоставлять конфиденциальную информацию, например маркеры доступа, если код проверяется в систему контроля версий или иначе распространяется:

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient(host  = f"https://{retrieve_workspace_instance_name()}",
                        token = retrieve_token())
    
  • Создайте или укажите профиль конфигурации , содержащий поля и , а затем инициализировать следующим образом:

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient(profile = "<profile-name>")
    
  • Задайте переменные среды DATABRICKS_HOST и DATABRICKS_TOKEN таким же образом, как и для Databricks Connect, а затем инициализировать WorkspaceClient следующим образом:

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient()
    

Пакет SDK Databricks для Python не распознает переменную среды SPARK_REMOTE для Databricks Connect.

Дополнительные параметры аутентификации Azure Databricks для SDK Databricks для Python, а также способы инициализации AccountClient в SDK Databricks для доступа к REST API Databricks на уровне учетной записи, а не на уровне рабочей области, см. в разделе databricks-sdk на PyPI.

В следующем примере показано, как использовать пакет SDK Databricks для Python для автоматизации служебных программ Databricks. В этом примере создается файл с именем zzz_hello.txt в разделе каталога Unity, затем данные считываются из файла, после чего файл удаляется. В этом примере предполагается, что переменные среды DATABRICKS_HOST и DATABRICKS_TOKEN уже установлены:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

file_path = "/Volumes/main/default/my-volume/zzz_hello.txt"
file_data = "Hello, Databricks!"
fs = w.dbutils.fs

fs.put(
  file      = file_path,
  contents  = file_data,
  overwrite = True
)

print(fs.head(file_path))

fs.rm(file_path)

См. также взаимодействие с dbutils в документации по SDK Databricks для Python.