教程:使用 Databricks Connect 在本地开发 Databricks 应用

Databricks Apps 允许你在 Databricks 平台上创建安全数据和 AI 应用程序,以便与用户轻松共享。 通过使用 PySpark 和 Databricks Connect 开发 Databricks 应用,可以利用应用中 Apache Spark 的强大功能。 与 JDBC 驱动程序类似,Databricks Connect 可以嵌入到任何应用程序中以与 Databricks 交互。 此外,Databricks Connect 通过 PySpark 提供Python的完整表现力,使你能够使用 Databricks 计算上的 Spark 运行所有数据转换。

有关应用和 Databricks Connect 的详细信息,请参阅 Databricks Apps 和 Databricks Connect。

本教程介绍如何在 Databricks 工作区中创建简单的 Databricks 应用,然后使用 Databricks Connect 在本地开发它。 应用程序在无服务器计算服务上运行,使用 Python 3.11 和 Databricks Connect 15.4.*。 若要使用不同的版本,Python版本和 Databricks Connect 版本必须兼容。 请参阅 Databricks Connect 版本。

小窍门

有关使用 Databricks Connect 的更高级示例应用,请参阅 Databricks Demos GitHub 存储库。

要求

  • Databricks 工作区和本地开发环境必须满足 Databricks Apps 的要求。 请参阅 设置 Databricks Apps 工作区和开发环境。
  • Databricks 工作区必须启用 Unity 目录,并且 无服务器计算 可用(在具有 Unity 目录的工作区中默认启用)。
  • Databricks CLI 版本 0.250.0 或更高版本安装在本地计算机上。 若要检查安装的 Databricks CLI 版本,请运行命令 databricks -v。 要安装 Databricks CLI,请参阅《安装或更新 Databricks CLI》。
  • 本地计算机上安装了 Python 3.11。

步骤 1:配置身份验证和无服务器计算

本教程使用无服务器计算和 Databricks OAuth 用户到计算机 (U2M) 身份验证和 Databricks 配置文件向 Azure Databricks 工作区进行身份验证。

运行以下命令,使用 Databricks CLI 启动 OAuth 登录。 使用 DEFAULT 作为配置文件名称,并按照屏幕说明完成登录到 Databricks 工作区。

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

步骤 2:创建应用

现在,在工作区中创建 Databricks 应用。

  1. 在 Databricks 工作区中,单击左侧栏中 的“+ 新建>应用 ”。

  2. 在 从模板安装 下,转到 仪表盘 选项卡。

  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

为 Databricks 应用创建Python虚拟环境,并根据需要添加 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 Connect 从 Databricks 读取数据,并利用 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 CLI 运行它。

    • 运行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调试器扩展,然后转到 Run>start Debugging>Remote Attach。

在本地查看行程成本应用

步骤 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",
    "state": "SUCCEEDED"
  },
  "update_time": "2025-12-06T01:30:20Z"
}

其他资源

  • 配置授权 以管理谁可以访问和编辑应用。
  • 将应用 与 Databricks 平台功能(例如 Databricks 机密或 Databricks SQL)集成。
  • 与工作区或整个组织中的其他用户共享应用。
  • 浏览应用模板 并试验不同的框架和功能。