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


Руководство. Разработка приложения Databricks локально с помощью Databricks Connect

Приложения Databricks позволяют создавать безопасные данные и приложения ИИ на платформе Databricks, которую можно легко предоставлять пользователям. Разрабатывая приложение Databricks с помощью PySpark и Databricks Connect, вы можете использовать возможности Apache Spark в приложении. Как и драйвер JDBC, Databricks Connect можно внедрить в любое приложение для взаимодействия с Databricks. Кроме того, Databricks Connect обеспечивает полную экспрессивность Python через PySpark, что позволяет выполнять все преобразования данных с помощью Spark на вычислениях Databricks.

Дополнительные сведения о приложениях и Databricks Connect см. в разделе "Приложения Databricks " и "Что такое Databricks Connect?".

В этом руководстве описывается создание простого приложения Databricks в рабочей области Databricks, а затем его разработка локально с помощью Databricks Connect. Приложение выполняется на бессерверных вычислениях с python 3.11 и Databricks Connect 15.4.*. Чтобы использовать другую версию, версии Python и Databricks Connect должны быть совместимыми. См. сведения о версиях Databricks Connect.

Подсказка

Дополнительные примеры приложения, использующего Databricks Connect, см. в репозитории Databricks Demos GitHub.

Требования

Шаг 1. Настройка проверки подлинности и бессерверных вычислений

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

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

databricks auth login --configure-serverless --host <workspace-url>

Шаг 2. Создание приложения

Теперь создайте приложение Databricks в рабочей области.

  1. В рабочей области Databricks нажмите кнопку +Создать>приложение на левой боковой панели.

  2. В разделе "Установка из шаблона" перейдите на вкладку Dash .

  3. Выберите шаблон Hello world .

  4. Назовите приложение dash-hello-world и нажмите кнопку "Установить".

Это создает новое приложение на основе выбранного шаблона, развертывает его в рабочей области и запускает его. Чтобы просмотреть приложение, щелкните URL-адрес "Запуск " в верхней части страницы обзора :

Просмотр приложения hello world

Шаг 3. Копирование приложения на локальный компьютер

Затем скачайте исходный код приложения на локальный компьютер.

  1. Скопируйте первую команду в разделе "Синхронизация файлов " на странице приложения.

  2. В локальном терминале создайте каталог dash-hello-world, а затем выполните скопированную команду, например:

    mkdir dash-hello-world
    cd dash-hello-world
    databricks workspace export-dir /Workspace/Users/someone@example.com/databricks_apps/dash-hello-world_2025_12_01-18_38/dash-hello-world-app .
    

Команда копирует два новых файла в каталог с именем app.py и app.yaml. app.yaml определяет конфигурацию приложения, включая ее точку входа и разрешения. app.py содержит код, реализующий функциональные возможности приложения и пользовательский интерфейс.

Шаг 4. Добавление Databricks Connect

Создайте виртуальную среду Python для приложения Databricks и добавьте databricks-connect ее в качестве требования.

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

    python3.11 -m venv .myvenv
    source .myvenv/bin/activate
    
  2. Обновите зависимости приложения в requirements.txt своем проекте. Добавить databricks-connect==15.4.*:

    dash== 3.3.*
    dash-bootstrap-components==2.0.*
    pandas
    plotly==6.5.*
    databricks-sql-connector
    databricks-sdk
    python-dotenv
    dash-ag-grid
    databricks-connect==15.4.*
    
  3. Установите зависимости в requirements.txt виртуальной среде:

    pip install -r requirements.txt
    

Шаг 5. Изменение приложения и локальное тестирование

Настройка и разработка приложения локально.

  1. Обновите app.py, чтобы читать данные из Databricks с помощью Databricks Connect и использовать Apache Spark для выполнения преобразований данных. Кроме того, добавьте код, чтобы сделать данные интерактивными, добавить параметр стилизации и разрешить отправку данных.

    # app.py
    
    import pandas as pd
    from dash import Dash, dcc, html
    import plotly.express as px
    import dash_bootstrap_components as dbc
    from databricks.connect.session import DatabricksSession
    from pyspark.sql.functions import col
    
    spark = DatabricksSession.builder.serverless().getOrCreate()
    # Data transformations with Spark in Python
    df = (spark.read.table("samples.nyctaxi.trips")
            .select('trip_distance', 'fare_amount')
            .filter(col('trip_distance') < 10)
            .limit(1000))
    
    chart_data = df.toPandas()
    
    # Initialize the Dash app with Bootstrap styling
    dash_app = Dash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP])
    
    # Define the app layout
    dash_app.layout = dbc.Container([
        dbc.Row([dbc.Col(html.H1('Trip cost by distance'), width=12)]),
        dcc.Graph(
            id='fare-scatter',
            figure=px.scatter(chart_data, x='trip_distance', y='fare_amount',
                labels={'trip_distance': 'Trip distance (miles)', 'fare_amount': 'Fare amount (USD)'},
                template='simple_white'),
            style={'height': '500px', 'width': '1000px'}
        )
    ], fluid=True)
    
    if __name__ == '__main__':
        dash_app.run(debug=True)
    
  2. Запустите и протестируйте приложение локально. Для его запуска можно использовать Python или интерфейс командной строки Databricks.

    • Запустите приложение Python.

      python app.py
      

      http://127.0.0.1:8050/ Перейдите в окно браузера, чтобы просмотреть приложение.

    • Или используйте databricks apps run-local команду для запуска и отладки приложения. Эта команда устанавливает все зависимости и подготавливает виртуальную среду, а затем запускает приложение и отладчик через порт 5678.

      databricks apps run-local --prepare-environment --debug
      

      http://localhost:8001 Перейдите в окно браузера, чтобы просмотреть приложение.

      Чтобы задать точки останова в Visual Studio Code, установите расширение отладчика Python, а затем перейдите в раздел Запуск>, выберите Запуск отладки>, затем Удаленное подключение.

Посмотрите приложение для расчета стоимости поездки локально

Шаг 6. Повторное развертывание приложения

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

Это важно

Чтобы избежать отправки всей виртуальной среды Python в Databricks, проект должен иметь файл .gitignore или в корневом каталоге с .myvenv, или в папке .myvenv, которая исключает эти файлы.

  1. В рабочей области Databricks щелкните "Вычисления", а затем "Приложения". dash-hello-world Выберите приложение.

  2. В разделе "Синхронизация файлов" скопируйте команду в разделе "Синхронизация будущих изменений" в Databricks и запустите ее из папки проекта локального приложения:

    databricks sync --watch . /Workspace/Users/someone@example.com/databricks_apps/dash-hello-world_2025_12_05-21_35/dash-hello-world-app
    
  3. Чтобы развернуть измененное приложение для вычислений, скопируйте команду в разделе "Развертывание в Databricks Apps " на странице приложения и запустите его из папки проекта локального приложения:

    databricks apps deploy dash-hello-world --source-code-path /Workspace/Users/someone@example.com/databricks_apps/dash-hello-world_2025_12_05-21_35/dash-hello-world-app
    

Если развертывание выполнено успешно, команда выводит подтверждение JSON:

{
    "create_time": "2025-12-06T01:30:16Z",
    "creator": "someone@example.com",
    "deployment_artifacts": {
    "source_code_path": "/Workspace/Users/1234abcd-5678-90ab-cdef-123456abcdef/src/abcd1234efgh5678ijkl9012mnop3456"
    },
    "deployment_id": "abcd1234efgh5678ijkl9012mnop3456",
    "mode": "SNAPSHOT",
    "source_code_path": "/Workspace/Users/someone@example.com/databricks_apps/dash-hello-world_2025_12_05-21_35/dash-hello-world-app",
    "status": {
    "message": "App started successfully",s
    "state": "SUCCEEDED"
    },
    "update_time": "2025-12-06T01:30:20Z"
}

Дальнейшие шаги