使用适用于 Scala 的 Databricks Connect 时的异步查询和中断
注意
本文介绍适用于 Databricks Runtime 14.0 及更高版本的 Databricks Connect。
本文介绍如何使用适用于 Scala 的 Databricks Connect 处理异步查询和中断。 Databricks Connect 使你能够将常用 IDE、笔记本服务器和自定义应用程序连接到 Azure Databricks 群集。 请参阅什么是 Databricks Connect?。 有关本文的 Python 版本,请参阅使用适用于 Python 的 Databricks Connect 时的异步查询和中断。
注意
在开始使用 Databricks Connect 之前,必须先设置 Databricks Connect 客户端。
对于适用于 Databricks Runtime 14.0 及更高版本的 Databricks Connect,在执行长时间运行的查询时,查询执行对网络和其他中断会更有弹性。 当客户端程序遇到中断或操作系统暂停了进程(最多 5 分钟)的情况时(例如在关上笔记本电脑上盖时),客户端会重新连接到正在运行的查询。 这还可使查询运行更长时间(以前只有 1 小时)。
Databricks Connect 现在还能够根据需要中断正在运行的查询,例如出于节省成本的目的。
import com.databricks.connect.DatabricksSession
object InterruptTagExample {
def main(args: Array[String]): Unit = {
val session = DatabricksSession.builder.getOrCreate()
val t = new Thread {
override def run {
Thread.sleep(5000)
session.interruptTag("interrupt-me")
}
}
// All subsequent DataFrame queries that use session will have this tag.
session.addTag("interrupt-me")
t.start()
val df = <a long running DataFrame query>
df.show()
t.join()
}
}