Бөлісу құралы:


Руководство по запуску кода Python на бессерверных вычислениях

Замечание

Эта статья относится к Databricks Connect 15.4 LTS и выше.

В этой статье описывается, как создать проект в интегрированной среде разработки, настроить виртуальную среду, установить Databricks Connect для Python и запустить код на бессерверных вычислениях в рабочей области Databricks.

В этом руководстве используется Python 3.12 и Databricks Connect 17.3 LTS. Чтобы использовать другие версии Python Databricks Connect, они должны быть совместимыми. См. матрицу поддержки версий.

Требования

Чтобы завершить работу с этим руководством, необходимо выполнить следующие требования:

Шаг 1. Настройка проверки подлинности Databricks

В этом руководстве используется проверка подлинности Databricks OAuth на компьютере (U2M) и профиль конфигурации Databricks для проверки подлинности в рабочей области Databricks.

  1. Используйте Databricks CLI для начала управления токенами OAuth на локальном уровне, выполнив следующую команду для каждой целевой рабочей области. В следующей команде замените <workspace-url>URL-адрес экземпляра рабочей области Databricks, например https://dbc-a1b2345c-d6e7.cloud.databricks.com.

    databricks auth login --host <workspace-url>
    
  2. Интерфейс командной строки Databricks предлагает сохранить сведения, введенные в качестве профиля конфигурации Databricks. Нажмите, Enter чтобы принять предлагаемое имя профиля, или введите имя нового или существующего профиля. Databricks рекомендует использовать DEFAULT в качестве имени профиля.

  3. В веб-браузере выполните инструкции на экране, чтобы войти в рабочую область Databricks.

Шаг 2. Создание виртуальной среды Python

  1. Создайте папку проекта и откройте ее в интегрированной среде разработки. Например, в главном меню Visual Studio Code нажмите кнопку"Открыть>>

  2. Откройте окно терминала в корневом каталоге папки проекта. Например, в главном меню Visual Studio Code щелкните "Просмотреть>терминал".

  3. Создайте виртуальную среду для проекта, вызываемую venv в корне папки проекта, выполнив следующую команду в терминале:

    python3.12 -m venv .venv
    
  4. Активируйте виртуальную среду:

    # Linux/Mac
    source .venv/bin/activate
    
    # Windows
    .venv\Scripts\activate
    

Шаг 3. Установка Databricks Connect

Установите Databricks Connect. Сведения о последних выпущенных версиях Databricks Connect см. в заметках о выпуске Databricks Connect.

pip install "databricks-connect==17.3.*"

Шаг 4. Добавление кода и запуск

  1. Добавление нового файла main.py Python в проект

  2. Введите следующий код в файл, заменив заполнитель <profile-name> именем профиля конфигурации на шаге 1, а затем сохраните файл. Имя DEFAULTпрофиля конфигурации по умолчанию .

    from databricks.connect import DatabricksSession
    
    spark = DatabricksSession.builder.serverless().profile("<profile-name>").getOrCreate()
    
    df = spark.read.table("samples.nyctaxi.trips")
    df.show(5)
    
  3. Запустите код с помощью следующей команды:

    python3 main.py
    

    Возвращаются пять строк таблицы:

    +--------------------+---------------------+-------------+-----------+---------+-----------+
    |tpep_pickup_datetime|tpep_dropoff_datetime|trip_distance|fare_amount|pickup_zip|dropoff_zip|
    +--------------------+---------------------+-------------+-----------+----------+-----------+
    | 2016-02-16 22:40:45|  2016-02-16 22:59:25|         5.35|       18.5|     10003|      11238|
    | 2016-02-05 16:06:44|  2016-02-05 16:26:03|          6.5|       21.5|     10282|      10001|
    | 2016-02-08 07:39:25|  2016-02-08 07:44:14|          0.9|        5.5|     10119|      10003|
    | 2016-02-29 22:25:33|  2016-02-29 22:38:09|          3.5|       13.5|     10001|      11222|
    | 2016-02-03 17:21:02|  2016-02-03 17:23:24|          0.3|        3.5|     10028|      10028|
    +--------------------+---------------------+-------------+-----------+----------+-----------+
    

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

Шаг 5. Подготовка к работе с кодом

Для рабочих сценариев важно избегать использования спецификаций вычислений в построителе сеансов Spark. Например, при развертывании кода в классическом кластере или Standard использовании Dedicated. API в построителе сеансов Spark создается новый бессерверный сеанс Spark с помощью классического кластера serverless() в качестве клиента.

Чтобы сделать код гибким и готовым к рабочей среде, сеанс Spark не должен содержать никаких параметров.

spark = DatabricksSession.builder.getOrCreate()

Однако при запуске этого кода в Databricks используется глобальный сеанс Spark по умолчанию вычислений Databricks.

Чтобы включить бессерверные вычисления в интегрированной среде разработки, используйте профиль конфигурации DEFAULT, выбранный DatabricksSession.builder при отсутствии параметров:

  1. Создайте профиль конфигурации с именем DEFAULT , используя инструкции на шаге 1.

  2. Используйте текстовый редактор для открытия .databrickscfg файла, который находится в:

    • Домашняя $HOME папка пользователя в Unix, Linux или macOS: ~/.databrickscfgили

    • Ваша %USERPROFILE% (домашняя папка пользователя) в Windows. Например, для macOS:

      nano ~/.databrickscfg
      
  3. Добавьте serverless_compute_id = auto в DEFAULT профиль:

    [DEFAULT]
    host                  = https://my-workspace.cloud.databricks.com
    auth_type             = databricks-cli
    serverless_compute_id = auto
    
  4. Сохраните изменения и закройте редактор.

  5. Измените код, чтобы использовать общий сеанс Spark и запустить его:

    from databricks.connect import DatabricksSession
    
    spark = DatabricksSession.builder.getOrCreate()
    
    df = spark.read.table("samples.nyctaxi.trips")
    df.show(5)
    
    python3 main.py
    

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

Подсказка

Можно также использовать переменные среды для установки подключения к определенным вычислительным ресурсам Databricks:

  • Бессерверные: DATABRICKS_SERVERLESS_COMPUTE_ID=auto
  • Классический: DATABRICKS_CLUSTER_ID=<your_cluster_id>