注释
本文适用于 Databricks Connect 15.4 LTS 及更高版本。
本文介绍如何在 IDE 中创建项目、设置虚拟环境、安装用于 Python 的 Databricks Connect,以及如何在 Databricks 工作区中的无服务器计算上运行代码。
本教程使用 Python 3.12 和 Databricks Connect 16.4 LTS。 若要使用 Databricks Connect 的其他版本的 Python,它们必须兼容。 请参阅 版本支持矩阵。
要求
若要完成本教程,必须满足以下要求:
- 工作区、本地环境和计算满足用于 Python 的 Databricks Connect 的要求。 请参阅 Databricks Connect 使用情况要求。
- 工作区中启用了无服务器计算。 请参阅连接到无服务器计算。
- 已安装 Python 3.12。
- 已安装 IDE,例如 Visual Studio Code。
- 在本地计算机上安装了 Databricks CLI。 请参阅安装或更新 Databricks CLI。
步骤 1:配置 Databricks 身份验证
本教程使用 Databricks OAuth 用户到计算机(U2M)身份验证 和 Databricks 配置文件 对 Databricks 工作区进行身份验证。
通过对每个目标工作区运行以下命令,使用 Databricks CLI 在本地启动 OAuth 令牌管理。 在以下命令中,将替换为
<workspace-url>Databricks 工作区实例 URL,例如https://dbc-a1b2345c-d6e7.cloud.databricks.com。databricks auth login --host <workspace-url>Databricks CLI 会提示保存作为 Databricks 配置文件输入的信息。 按下
Enter接受建议的配置文件名称,或输入新配置文件或现有配置文件的名称。 Databricks 建议用作DEFAULT配置文件名称。在 Web 浏览器中,完成登录到 Databricks 工作区的屏幕说明。
步骤 2:创建新的 Python 虚拟环境
创建项目文件夹,并在 IDE 中打开它。 例如,在 Visual Studio Code 主菜单中,单击“文件>打开文件夹>打开”
打开项目文件夹根目录处的终端窗口。 例如,在 Visual Studio Code 主菜单中,单击 “视图>终端”。
通过在终端中运行以下命令,为项目文件夹的根目录下调用
venv的项目创建虚拟环境:python3.12 -m venv .venv激活虚拟环境:
# Linux/Mac source .venv/bin/activate# Windows .venv\Scripts\activate
步骤 3:安装 Databricks Connect
安装 Databricks Connect。 有关 Databricks Connect 16.4 的最新发布版本的信息,请参阅 Databricks Connect for Databricks Runtime 16.4。
pip install "databricks-connect==16.4.*"
步骤 4:添加代码并运行
向项目添加新的 Python 文件
main.py在文件中输入以下代码,将占位符
<profile-name>替换为步骤 1 中的配置文件的名称,然后保存该文件。 默认配置文件名称为DEFAULT.from databricks.connect import DatabricksSession spark = DatabricksSession.builder.serverless().profile("<profile-name>").getOrCreate() df = spark.read.table("samples.nyctaxi.trips") df.show(5)使用以下命令运行代码:
python3 main.py返回表的五行:
+--------------------+---------------------+-------------+-----------+---------+-----------+ |tpep_pickup_datetime|tpep_dropoff_datetime|trip_distance|fare_amount|pickup_zip|dropoff_zip| +--------------------+---------------------+-------------+-----------+----------+-----------+ | 2016-02-16 22:40:45| 2016-02-16 22:59:25| 5.35| 18.5| 10003| 11238| | 2016-02-05 16:06:44| 2016-02-05 16:26:03| 6.5| 21.5| 10282| 10001| | 2016-02-08 07:39:25| 2016-02-08 07:44:14| 0.9| 5.5| 10119| 10003| | 2016-02-29 22:25:33| 2016-02-29 22:38:09| 3.5| 13.5| 10001| 11222| | 2016-02-03 17:21:02| 2016-02-03 17:23:24| 0.3| 3.5| 10028| 10028| +--------------------+---------------------+-------------+-----------+----------+-----------+
你已成功使用 IDE 中的 Databricks Connect 对 Databricks 无服务器计算运行第一个查询。
步骤 5:使代码生产就绪
对于生产方案,请务必避免在 Spark 会话生成器中使用计算规范。 例如,如果将代码部署到经典群集: Standard 或使用 Dedicated.serverless() Spark 会话生成器中的 API,则会使用经典群集作为客户端创建新的无服务器 Spark 会话。
若要使代码灵活且可供生产使用,Spark 会话不应包含任何参数。
spark = DatabricksSession.builder.getOrCreate()
但是,当此代码在 Databricks 上运行时,将使用 Databricks 计算的默认全局 Spark 会话。
若要在 IDE 中启用无服务器计算,请使用 DEFAULT 配置文件,该配置文件由 DatabricksSession.builder 未指定参数时选择:
使用文本编辑器打开
.databrickscfg该文件,该文件位于:$HOMEUnix、Linux 或 macOS 上的用户主文件夹:~/.databrickscfg或Windows
%USERPROFILE%上的(用户主页)文件夹。 例如,对于 macOS:nano ~/.databrickscfg
添加到
serverless_compute_id = autoDEFAULT配置文件:[DEFAULT] host = https://my-workspace.cloud.databricks.com auth_type = databricks-cli serverless_compute_id = auto保存更改并退出编辑器。
修改代码以使用常规 Spark 会话并运行它:
from databricks.connect import DatabricksSession spark = DatabricksSession.builder.getOrCreate() df = spark.read.table("samples.nyctaxi.trips") df.show(5)python3 main.py
已使用 DEFAULT 配置文件从 IDE 使用 Databricks Connect 成功在 Databricks 无服务器计算上运行生产就绪代码。
小窍门
还可以使用环境变量来设置与特定 Databricks 计算的连接:
- 无服务器:
DATABRICKS_SERVERLESS_COMPUTE_ID=auto - 经典:
DATABRICKS_CLUSTER_ID=<your_cluster_id>