注释
本文探讨适用于 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()