Compartir a través de


Consultas asincrónicas e interrupciones con Databricks Connect para Scala

Nota:

En este artículo se habla de Databricks Connect para Databricks Runtime 14.0 y versiones posteriores.

En este artículo se describe cómo controlar las consultas asincrónicas y las interrupciones con Databricks Connect para Scala. Databricks Connect le permite conectar los clústeres de Azure Databricks a entornos de desarrollo integrado populares, servidores de cuadernos y otras aplicaciones personalizadas. Consulte ¿Qué es Databricks Connect?. Para obtener la versión de Python de este artículo, vea Consultas asincrónicas e interrupciones con Databricks Connect para Python.

Nota:

Antes de empezar a usar Databricks Connect, es necesario configurar el cliente de Databricks Connect.

Para Databricks Connect para Databricks Runtime 14.0 y versiones posteriores, la ejecución de consultas es más resistente a las interrupciones de red y de otro tipo cuando se ejecutan consultas de larga duración. Cuando el programa cliente recibe una interrupción o el proceso se pone en pausa (hasta 5 minutos) por el sistema operativo, como cuando se cierra la tapa del portátil, el cliente vuelve a conectarse a la consulta en ejecución. Esto también permite que las consultas se ejecuten durante más tiempo (anteriormente solo 1 hora).

Databricks Connect ahora también incluye la capacidad de interrumpir las consultas en ejecución, si lo desea, por ejemplo para ahorrar costos.

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