适用于 Python 的 Databricks Connect

注意

本文介绍适用于 Databricks Runtime 13.3 LTS 及更高版本的 Databricks Connect。

本文演示如何使用 Python 和 PyCharm 快速开始使用 Databricks Connect。

可以使用 Databricks Connect 将热门的 IDE(例如 PyCharm、笔记本服务器和其他自定义应用程序)连接到 Azure Databricks 群集。 请参阅什么是 Databricks Connect?

教程

若要跳过此教程并使用其他 IDE,请参阅后续步骤

要求

若要完成此教程,必须满足以下要求:

  • 目标 Azure Databricks 工作区必须启用 Unity Catalog。
  • 已安装 PyCharm。 本教程已使用 PyCharm Community Edition 2023.3.5 进行测试。 如果使用不同版本的 PyCharm,则以下说明可能有所不同。
  • 你的计算满足适用于 Python 的 Databricks Connect 安装要求
  • 如果你使用经典计算,则需要群集的 ID。 若要获取群集 ID,请在工作区中单击边栏上的“计算”,然后单击群集的名称。 在 Web 浏览器的地址栏中,复制 URL 中 clustersconfiguration 之间的字符字符串。

步骤 1:配置 Azure Databricks 身份验证

本教程使用 Azure Databricks OAuth 用户到计算机 (U2M) 身份验证和 Azure Databricks 配置文件向 Azure Databricks 工作区进行身份验证。 若要使用其他身份验证类型,请参阅配置连接属性

配置 OAuth U2M 身份验证需要 Databricks CLI,如下所示:

  1. 如果尚未安装,请安装 Databricks CLI,如下所示:

    Linux、macOS

    运行以下两个命令,使用 Homebrew 安装 Databricks CLI:

    brew tap databricks/tap
    brew install databricks
    

    Windows

    可以使用 wingetChocolatey适用于 Linux 的 Windows 子系统 (WSL) 安装 Databricks CLI。 如果无法使用 winget、Chocolatey 或 WSL,则应跳过此过程,改为使用命令提示符或 PowerShell 从源安装 Databricks CLI

    注意

    使用 Chocolatey 安装 Databricks CLI 是试验性的

    若要使用 winget 安装 Databricks CLI,请运行以下两个命令,然后重启命令提示符:

    winget search databricks
    winget install Databricks.DatabricksCLI
    

    若要使用 Chocolatey 安装 Databricks CLI,请运行以下命令:

    choco install databricks-cli
    

    若要使用 WSL 安装 Databricks CLI:

    1. 通过 WSL 安装 curlzip。 有关详细信息,请参阅操作系统文档。

    2. 使用 WSL 通过运行以下命令来安装 Databricks CLI:

      curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
      
  2. 通过运行以下命令确认安装了 Databricks CLI,该命令显示已安装的 Databricks CLI 的当前版本。 此版本应为 0.205.0 或更高版本:

    databricks -v
    

    注意

    如果运行 databricks 但收到错误(如 command not found: databricks),或者如果运行 databricks -v 而列出的版本号为 0.18 或更低,则表示计算机找不到正确版本的 Databricks CLI 可执行文件。 若要修复此问题,请参阅验证 CLI 安装

启动 OAuth U2M 身份验证,如下所示:

  1. 通过对每个目标工作区运行以下命令,使用 Databricks CLI 在本地启动 OAuth 令牌管理。

    在以下命令中,将 <workspace-url> 替换为 Azure Databricks 每工作区 URL,例如 https://adb-1234567890123456.7.azuredatabricks.net

    databricks auth login --configure-cluster --host <workspace-url>
    
  2. Databricks CLI 会提示将输入的信息保存为 Azure Databricks 配置文件。 按 Enter 接受建议的配置文件名称,或输入新的或现有的配置文件的名称。 任何具有相同名称的现有配置文件都会被输入的信息覆盖。 可以使用配置文件在多个工作区之间快速切换身份验证上下文。

    若要获取任何现有配置文件的列表,请在单独的终端或命令提示符中使用 Databricks CLI 来运行 databricks auth profiles 命令。 若要查看特定配置文件的现有设置,请运行 databricks auth env --profile <profile-name> 命令。

  3. 在 Web 浏览器中,按照屏幕上的说明登录到 Azure Databricks 工作区。

  4. 通过终端或命令提示符,在显示的可用群集列表中,使用向上键和向下键选择工作区中的目标 Azure Databricks 群集,然后按 Enter。 还可以键入群集显示名称的任意部分来筛选可用群集的列表。

  5. 若要查看配置文件的当前 OAuth 令牌值和令牌的即将到期的到期时间戳,请运行以下命令之一:

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    如果你有多个配置文件有相同的 --host 值,则可能需要同时指定 --host-p 选项,以便 Databricks CLI 找到正确的、匹配的 OAuth 令牌信息。

步骤 2:创建项目

  1. 启动 PyCharm。
  2. 在主菜单上,单击“文件”>“新建项目”
  3. 在“新建项目”对话框中,单击“纯 Python”
  4. 对于“位置”,单击文件夹图标,然后完成屏幕说明以指定新 Python 项目的路径。
  5. 让“创建 main.py 欢迎脚本”保持选中状态
  6. 对于“解释器类型”,请单击“项目 venv”
  7. 展开“Python 版本”,并使用文件夹图标或下拉列表从上述要求中指定 Python 解释器的路径
  8. 单击 “创建”

创建 PyCharm 项目

步骤 3:添加 Databricks Connect 包

  1. 在 PyCharm 的主菜单上,单击“查看 > 工具窗口 > Python 包”。
  2. 在搜索框中输入 databricks-connect
  3. 在“PyPI 存储库”列表中,单击“databricks-connect”。
  4. 在结果窗格的“最新”下拉列表中,选择与群集的 Databricks Runtime 版本匹配的版本。 例如,如果群集已安装 Databricks Runtime 14.3,请选择 14.3.1
  5. 单击“安装包”
  6. 安装包后,可以关闭“Python 包”窗口。

安装 Databricks Connect 包

步骤 4:添加代码

  1. 在“项目”工具窗口中,右键点击项目的根文件夹,然后点击“新建 > Python 文件”。

  2. 输入 main.py 并双击“Python 文件”

  3. 依据配置文件的名称,在文件中输入以下代码,然后保存文件。

    如果步骤 1 中的配置文件已命名为 DEFAULT,请在文件中输入以下代码,然后保存文件:

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

    如果步骤 1 中的配置文件没有命名为 DEFAULT,请改为在文件中输入以下代码。 替换占位符 <profile-name> 为步骤 1 中配置文件的名称,然后保存文件:

    from databricks.connect import DatabricksSession
    
    spark = DatabricksSession.builder.profile("<profile-name>").getOrCreate()
    
    df = spark.read.table("samples.nyctaxi.trips")
    df.show(5)
    

步骤 5:运行代码

  1. 在远程 Azure Databricks 工作区中启动目标群集。
  2. 群集启动后,在主菜单上单击“运行”>“运行‘main’”
  3. 在“运行”工具窗口中(“视图”>“工具窗口”>“运行”),在“运行”选项卡的窗格中,将显示 samples.nyctaxi.trips 的前 5 行。

步骤 6:调试代码

  1. 群集仍在运行中,在前面的代码中,单击 df.show(5) 旁边的装订线以设置断点。
  2. 在主菜单上,单击“运行”>“调试‘main’”
  3. 在“调试”工具窗口(“查看 > 工具窗口 > 调试”)中,在“调试程序”选项卡的“变量”窗格中展开“df”和“spark”变量节点可浏览有关代码的 dfspark 变量的信息。
  4. 在“调试”工具窗口的侧栏中,单击绿色箭头(“恢复程序”)图标。
  5. 在“调试程序”选项卡的“控制台”窗格中,将显示 samples.nyctaxi.trips 的前 5 行。

调试 PyCharm 项目

后续步骤

若要了解有关 Databricks Connect 的详细信息,请参阅如下文章: