Databricks 应用入门

重要

Databricks 应用以公共预览版提供

本文介绍如何使用分步示例开始使用 Databricks 应用,以在本地开发环境中创建一个简单的应用,并将应用部署到 Azure Databricks 工作区。 此示例将引导你完成:

  • 在本地创建和测试应用。
  • 在本地测试后,使用 Databricks CLI 将应用添加到 Azure Databricks 工作区。
  • 查看工作区中应用的详细信息页。
  • 将应用的源代码和项目复制到工作区。
  • 在工作区中查看应用的输出。

在逐步完成示例之前,请确保 Azure Databricks 工作区和本地开发环境满足要求

Databricks 建议在开发应用时使用 Python 虚拟环境。 本文中的示例使用 pipenv 创建虚拟环境。 若要了解详细信息,请参阅 Python 虚拟环境:入门

此示例在 Databricks Apps 模板库中也可用。 请参阅如何实现在 Databricks 应用 UI 中创建应用?

步骤 1:设置本地环境

打开终端并运行以下命令以执行以下操作:

  • 创建并启动 Python 虚拟环境。
  • 安装示例应用所需的 Python 库。
  • 为应用的源和配置文件创建本地目录。
pipenv --python 3.11
pipenv shell
pip install gradio
pip install pandas
mkdir <app-dir-name>
cd <app-dir-name>

替换为 <app-dir-name> 应用文件的本地目录的名称, gradio-hello-world例如。

步骤 2:为应用添加源和配置

  1. 在文本编辑器或你喜欢的集成开发环境(IDE)中,使用以下代码创建新的 Python 文件,并将其保存到所创建的目录。 此示例使用 Python 文件的文件名 app.py

    import gradio as gr
    import pandas as pd
    
    data = pd.DataFrame({'x': [x for x in range(30)],
                         'y': [2 ** x for x in range(30)]})
    
    # Display the data with Gradio
    with gr.Blocks(css='footer {visibility: hidden}') as gradio_app:
        with gr.Row():
            with gr.Column(scale=3):
                gr.Markdown('# Hello world!')
                gr.ScatterPlot(value=data, height=400, width=700,
                               container=False, x='x', y='y',
                               y_title='Fun with data', x_title='Apps')
    
    if __name__ == '__main__':
        gradio_app.launch()
    
  2. 在文本编辑器或 IDE 中,创建包含以下内容的新 YAML 文件,并将其保存到在创建的目录中命名 app.yaml 的文件:

    command: [
      "python",
      "<app-name.py>"
    ]
    

    替换为 <app-name.py> 包含应用代码的 Python 文件的名称。 例如,app.py

步骤 3:在本地测试应用

  1. 若要在本地测试应用,请打开终端并运行 python <app-name.py>,并 <app-name.py> 替换为包含应用代码的文件的名称。

    python app.py
    Running on local URL:  http://127.0.0.1:7860
    ...
    
  2. 若要查看应用的输出,请在浏览器窗口中打开 http://127.0.0.1:7860

    在本地查看 hello world 应用的输出

步骤 4:将应用部署到工作区

若要在工作区中创建新应用并将代码从本地环境部署到工作区,请打开终端并完成以下步骤。

  1. 在 Azure Databricks 工作区中创建应用。

    注意

    • 创建应用后,无法更改分配给 Databricks 应用的名称,任何有权访问 Azure Databricks 工作区的用户都可以查看工作区中所有 Databricks 应用的名称和部署历史记录。 此外,应用名称包含在写入系统表的记录中。 由于这种可见性,命名 Databricks 应用时不应包含敏感信息。
    • 该名称在托管应用的 Azure Databricks 工作区中必须唯一,并且必须仅包含小写字母、数字和连字符。
    databricks apps create <app-name>
    

    替换为 <app-name> 应用的名称。 例如,gradio-hello-world

  2. 若要在命令完成后在工作区create中查看应用,请在边栏中单击“计算”,转到compute icon应用”选项卡,然后单击“名称”列中指向应用的链接。

    创建应用后查看应用详细信息页

  3. 将文件从本地环境同步到 Azure Databricks 工作区。 将文件从本地环境同步到工作区(包括文件的工作区路径)的命令位于 Databricks 的“同步源文件”下。 单击 复制图标 此项可复制此命令。

  4. 在终端中,切换到包含应用文件的目录,并运行复制的 sync 命令。

    注意

    如果本地应用目录中存在不希望命令 databricks sync 传输的特定文件或目录,请将这些文件或目录添加到 .gitignore 本地应用目录中的文件。 例如,如果你的 Python 虚拟环境目录与应用位于同一目录中,请将目录的名称添加到 .gitignore 文件中,并且 sync 命令在传输文件时将跳过该目录。

    databricks sync --watch . /Workspace/Users/user@databricks.com/gradio-hello-world
    ...
    Initial Sync Complete
    
  5. 若要在命令完成后查看工作区sync中的同步文件,请单击边栏中的“工作区图标工作区”,并转到为应用创建的目录。

  6. 若要部署应用,请在终端中运行以下命令,替换为 <app-path> 应用文件的工作区路径。

    databricks apps deploy gradio-hello-world --source-code-path <app-path>

  7. 若要查看部署状态,请转到应用的详细信息页。

    在应用部署后查看应用详细信息页

    若要查看已部署应用的输出,请单击详细信息页上应用名称下的应用链接。

    指向已部署应用的链接

后续步骤

若要了解如何在 Databricks 应用 UI 中创建应用,请参阅如何实现在 Databricks Apps UI 中创建应用?