使用适用于 Python 的 Databricks Connect 时的异步查询和中断

注意

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

本文介绍如何使用适用于 Python 的 Databricks Connect 处理异步查询和中断。 Databricks Connect 使你能够将常用 IDE、笔记本服务器和自定义应用程序连接到 Azure Databricks 群集。 请参阅什么是 Databricks Connect?。 有关本文的 Scala 版本,请参阅使用适用于 Scala 的 Databricks Connect 时的异步查询和中断

注意

在开始使用 Databricks Connect 之前,必须先设置 Databricks Connect 客户端

对于适用于 Databricks Runtime 14.0 及更高版本的 Databricks Connect,在执行长时间运行的查询时,查询执行对网络和其他中断会更有弹性。 当客户端程序遇到中断或操作系统暂停了进程(最多 5 分钟)的情况时(例如在关上笔记本电脑上盖时),客户端会重新连接到正在运行的查询。 这还可使查询运行更长时间(以前只有 1 小时)。

Databricks Connect 现在还能够根据需要中断正在运行的查询,例如出于节省成本的目的。

以下 Python 程序使用 interruptTag() API 中断长时间运行的查询。

from databricks.connect import DatabricksSession
from time import sleep
import threading

session = DatabricksSession.builder.getOrCreate()

def thread_fn():
  sleep(5)
  session.interruptTag("interrupt-me")

# All subsequent DataFrame queries that use session will have this tag.
session.addTag("interrupt-me")

t = threading.Thread(target=thread_fn).start()

df = <a long running DataFrame query>
df.show()

t.join()