通过


教程:使用 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 配置档案来对 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.pyapp.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 调试器扩展,然后转到 “运行>启动调试>远程附加”。

在本地查看行程成本应用

步骤 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"
}

后续步骤

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