共用方式為

Databricks Connect for Scala 的异步查询和中断

注释

本文探讨适用于 Databricks Runtime 14.0 及以上版本的 Databricks Connect。

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

注释

在开始使用 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()
  }
}