使用 Python 或 R 连接到 Azure Databricks

本文介绍如何使用 Databricks ODBC 驱动程序将 Azure Databricks 与 Python 或 R 语言连接。 建立连接后,可以从 Python 或 R 客户端访问 Azure Databricks 中的数据。 还可以使用客户端进一步分析数据。

先决条件

设置 DSN

数据源名称(DSN)包含有关特定数据源的信息。 ODBC 驱动程序需要此 DSN 才能连接到数据源。 在本部分中,将设置可与 Databricks ODBC 驱动程序一起使用的 DSN,以便从 Python 或 R 等客户端连接到 Azure Databricks。

  1. 在 Azure Databricks 工作区中,导航到 Databricks 群集。

    打开 Databricks 群集

  2. “配置 ”选项卡下,单击 “JDBC/ODBC ”选项卡,并复制 服务器主机名HTTP 路径的值。 需要这些值才能完成本文中的步骤。

    获取 Databricks 配置

  3. 在计算机上,启动 ODBC 数据源 应用程序 64 位。

    启动 ODBC 数据源应用

  4. 在“ 用户 DSN ”选项卡下,单击“ 添加”。 在“ 新建数据源 ”对话框中,选择 Simba Spark ODBC 驱动程序,然后单击“ 完成”。

    添加 ODBC 数据源

  5. Simba Spark ODBC 驱动程序 对话框中,提供以下值:

    配置 DSN

    下表提供有关对话框中要提供的值的信息。

    领域 价值
    数据源名称 提供数据源的名称。
    主机 请提供从 Databricks 工作区复制的服务器主机名的值。
    港口 输入 443
    认证>机制 选择 用户名和密码
    用户名 输入令牌
    密码 输入从 Databricks 工作区复制的令牌值。

    在 DSN 安装对话框中执行以下附加步骤。

    • 单击“HTTP 选项”。 在打开的对话框中,粘贴从 Databricks 工作区复制的 HTTP 路径 的值。 单击“ 确定”。
    • 单击“SSL 选项”。 在打开的对话框中,选中“启用 SSL”复选框。 单击“ 确定”。
    • 单击“ 测试 ”以测试与 Azure Databricks 的连接。 单击“ 确定 ”保存配置。
    • “ODBC 数据源管理员 ”对话框中,单击“ 确定”。

现在,你的 DSN 已设置好。 在接下来的章节中,你将使用此 DSN 从 Python 或 R 连接到 Azure Databricks。

从 R 进行连接

备注

本部分介绍如何将桌面上运行的 R Studio 客户端与 Azure Databricks 集成。 有关如何在 Azure Databricks 群集本身上使用 R Studio 的说明,请参阅 Azure Databricks 上的 R Studio

在本部分中,你将使用 R 语言 IDE 引用 Azure Databricks 中提供的数据。 在开始之前,必须在计算机上安装以下内容。

  • R 语言的 IDE。 本文使用 RStudio for Desktop。 可以从 R Studio 下载安装它。
  • 如果使用 RStudio for Desktop 作为 IDE,请从 https://aka.ms/rclient/安装 Microsoft R 客户端。

打开 RStudio 并执行以下步骤:

  1. 引用 RODBC 包。 这使你能够使用之前创建的 DSN 连接到 Azure Databricks。

  2. 使用 DSN 建立连接。

  3. 对 Azure Databricks 中的数据运行 SQL 查询。 在以下代码片段中, radio_sample_data 是 Azure Databricks 中已存在的表。

  4. 对查询执行一些操作以验证输出。

以下代码片段执行以下任务:

# reference the 'RODBC' package
require(RODBC)

# establish a connection using the DSN you created earlier
conn <- odbcConnect("<ENTER DSN NAME HERE>")

# run a SQL query using the connection you created
res <- sqlQuery(conn, "SELECT * FROM radio_sample_data")

# print out the column names in the query output
names(res)

# print out the number of rows in the query output
nrow (res)

从 Python 进行连接

在本部分中,你将使用 Python IDE(如 IDLE)来引用 Azure Databricks 中可用的数据。 在开始之前,请完成以下先决条件:

  • 从此处安装 Python。 利用此链接安装 Python 也会安装 IDLE。

  • 在计算机上的命令提示符下,安装 pyodbc 包。 运行下面的命令:

    pip install pyodbc
    

打开 IDLE 并执行以下步骤:

  1. 导入 pyodbc 包。 这使你能够使用之前创建的 DSN 连接到 Azure Databricks。

  2. 使用之前创建的 DSN 建立连接。

  3. 使用创建的连接运行 SQL 查询。 在以下代码片段中, radio_sample_data 是 Azure Databricks 中已存在的表。

  4. 对查询执行操作以验证输出。

以下代码片段执行以下任务:

# import the `pyodbc` package:
import pyodbc

# establish a connection using the DSN you created earlier
conn = pyodbc.connect("DSN=<ENTER DSN NAME HERE>", autocommit=True)

# run a SQL query using the connection you created
cursor = conn.cursor()
cursor.execute("SELECT * FROM radio_sample_data")

# print the rows retrieved by the query.
for row in cursor.fetchall():
    print(row)

后续步骤