使用适用于 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()