query assíncronas e interrupções com Databricks Connect for Scala

Observação

Este artigo aborda o Databricks Connect para Databricks Runtime 14.0 e acima.

Este artigo descreve como lidar com query assíncronas e interrupções com o Databricks Connect for Scala. O Databricks Connect permite conectar IDEs populares, servidores Notebook e aplicativos personalizados a clusters Databricks. Consulte O que é o Databricks Connect?. Para a versão Python destes artigos, consulte query assíncrona e interrupções com Databricks Connect for Python.

Observação

Antes de começar a usar o Databricks Connect, você deve configurar o cliente Databricks Connect.

Para o Databricks Connect for Databricks Runtime 14.0 e acima, a execução query é mais resiliente à rede e outras interrupções ao executar query de longa duração. Quando o programa cliente recebe uma interrupção ou o processo é pausado (até 5 minutos) pelo sistema operacional, como quando a tampa do laptop é fechada, o cliente se reconecta à query em execução. Isso também permite a execução query por períodos mais longos (anteriormente apenas 1 hora).

O Databricks Connect agora também vem com a capacidade de interromper a execução query, se desejado, como para economia de custos.

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()
  }
}