我们很高兴地宣布Databricks SQL Connector for Python 全面上市。这遵循了最近在 Amazon Web Services 和 Azure 上的 Databricks SQL 的普遍可用性。Python 开发人员现在可以在 Lakehouse 上构建数据应用程序,受益于对所有数据进行分析的 创纪录性能。
本机 Python 连接器提供简单的安装和Python DB API 2.0兼容接口,可以轻松查询数据。它还自动在 Databricks SQL 和 Python 数据类型之间转换,无需样板代码。
在这篇博文中,我们将介绍一些连接到 Databricks 并针对示例数据集运行查询的示例。
从 PyPI 简单安装
使用本机 Python 连接器,无需下载和安装 ODBC/JDBC 驱动程序。通过 pip 安装,这意味着您可以在应用程序中包含此连接器并将其用于 CI/CD:
pip install databricks-sql-connector
安装需要 Python 3.7+
查询表和视图
该连接器适用于 SQL 端点以及通用集群。在此示例中,我们将向您展示如何连接到 SQL 端点并在其上运行查询。为了建立连接,我们导入连接器并传入连接和身份验证信息。您可以使用 Databricks 个人访问令牌 (PAT) 或 Microsoft Azure 活动目录 (AAD) 令牌进行身份验证。
以下示例从 NYC 出租车示例数据集中检索行程列表,并将行程距离打印到控制台。cursor.description 包含有关 DB-API 2.0 格式的结果集的元数据。cursor.fetchall() 获取所有剩余的行作为 Python 列表。
from databricks import sql
with sql.connect(server_hostname="", http_path="",
access_token="") as conn:
with conn.cursor() as cursor:
cursor.execute(“SELECT * FROM samples.nyctaxi.trips WHERE trip_distance
输出(为简洁而编辑):
5
Description: [('tpep_pickup_datetime', 'timestamp', …), ('tpep_dropoff_datetime', 'timestamp', …), ('trip_distance', 'double', …), …]
Results:
5.35
6.5
5.8
9.0
11.3
…
注意:使用参数化查询时,应仔细清理输入以防止 SQL 注入攻击。
将数据插入表中
该连接器还允许您运行 INSERT 语句,这对于将 Python 应用程序生成的少量数据(例如数千行)插入表中非常有用:
cursor.execute("CREATE TABLE IF NOT EXISTS squares (x int, x_squared int)")
squares = [(i, i * i) for i in range(100)]
values = ",".join([f"({x}, {y})" for (x, y) in squares])
cursor.execute(f"INSERT INTO squares VALUES {values}")
cursor.execute("SELECT * FROM squares")
print(cursor.fetchmany(3))
输出
[Row(x=0, x_squared=0), Row(x=1, x_squared=1), Row(x=2, x_squared=4)]
要批量加载大量数据(例如数百万行),我们建议先将数据上传到云存储,然后执行COPY INTO命令。
查询有关表和视图的元数据
除了执行 SQL 查询外,连接器还可以轻松查看有关目录、数据库、表和列的元数据。以下示例将从示例表中检索有关列的元数据信息:
cursor.columns(schema_name="default", table_name="squares")
for row in cursor.fetchall():
print(row.COLUMN_NAME)
输出(为简洁而编辑):
x
x_squared
Lakehouse 上 Python 应用程序开发人员的光明未来
我们要感谢 Dropbox 的 PyHive 连接器的贡献者,它为 Python 的 Databricks SQL 连接器的早期版本提供了基础。在接下来的几个月里,我们计划开源 Python 的 Databricks SQL 连接器,并开始欢迎社区的贡献。
我们很高兴我们的客户将使用适用于 Python 的 Databricks SQL 连接器构建什么。在即将发布的版本中,我们期待添加对其他身份验证方案、多目录元数据和 SQLAlchemy 的支持。请试用连接器,并给我们反馈。我们很想听听您希望我们支持什么。
原文标题:Building Data Applications on the Lakehouse With the Databricks SQL Connector for Python
原文作者:Bilal Aslam, Ben Fleis, Niall Egan and Shant Hovsepian
原文地址:https://www.databricks.com/blog/2022/01/26/building-data-applications-on-the-lakehouse-with-the-databricks-sql-connector-for-python.html




