Uso de Visual Studio Code con Databricks Connect para Scala
Nota:
Este artículo describe Databricks Connect para Databricks Runtime 13.3 LTS y versiones posteriores.
En este artículo se explica cómo usar Databricks Connect para Scala con Visual Studio Code. 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, consulte Uso de Visual Studio Code con Databricks Connect para Python.
Nota:
Antes de empezar a usar Databricks Connect, debe configurar el cliente de Databricks Connect.
Para usar Databricks Connect y Visual Studio Code con la extensión Scala (Metals) para crear, ejecutar y depurar un proyecto de Scala sbt
de ejemplo, siga estas instrucciones. También puede adaptar este ejemplo a los proyectos de Scala existentes.
Asegúrese de que el Kit de desarrollo de Java (JDK) y Scala están instalados localmente. Databricks recomienda que la versión local de JDK y Scala coincidan con la versión de JDK y Scala en el clúster de Azure Databricks.
Asegúrese de que la última versión de
sbt
está instalada localmente.Instalación de la extensión Scala (Metals) para Visual Studio Code.
En Visual Studio Code, abra la carpeta en la que desea crear el proyecto de Scala (Archivo > Abrir carpeta).
En la barra lateral, haga clic en el icono de extensión Metals y, a continuación, haga clic en Nuevo proyecto de Scala.
En la paleta de comandos, elija la plantilla denominada scala/hello-world.g8 y complete las instrucciones en pantalla para terminar de crear el proyecto de Scala en la carpeta especificada.
Agregue los ajustes de compilación del proyecto: en la vista Explorador (Vista > Explorador), abra el archivo
build.sbt
de la raíz del proyecto, sustituya el contenido del archivo por lo siguiente y guárdelo:scalaVersion := "2.12.15" libraryDependencies += "com.databricks" % "databricks-connect" % "14.0.0"
Reemplace
2.12.15
por la versión instalada de Scala, que debe coincidir con la versión que se incluye con la versión de Databricks Runtime en el clúster.Reemplace
14.0.0
por la versión de la biblioteca de Databricks Connect que coincida con la versión de Databricks Runtime en el clúster. Puede encontrar los números de versión de la biblioteca de Databricks Connect en el repositorio central de Maven.Agregue código de Scala: abra el archivo
src/main/scala/Main.scala
relativo a la raíz del proyecto, reemplace el contenido del archivo por lo siguiente y guarde el archivo:import com.databricks.connect.DatabricksSession import org.apache.spark.sql.SparkSession object Main extends App { val spark = DatabricksSession.builder().remote().getOrCreate() val df = spark.read.table("samples.nyctaxi.trips") df.limit(5).show() }
Compile el proyecto: ejecute el comando >Metals: Importar compilación desde la paleta de comandos.
Agregue los ajustes de ejecución del proyecto: en la vista Ejecutar y Depurar (Ver > Ejecutar), haga clic en el vínculo etiquetado crear un archivo launch.json.
En la paleta de comandos, seleccione Depurador de Scala.
Agregue la siguiente configuración de ejecución al archivo
launch.json
y, después, guárdelo:{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "type": "scala", "request": "launch", "name": "Scala: Run main class", "mainClass": "Main", "args": [], "jvmOptions": [] } ] }
Ejecute el proyecto: haga clic en el icono de reproducir (Iniciar depuración) junto a Scala: Ejecutar clase principal. En la vista Consola de depuración (Ver > Consola de depuración), aparecen las primeras 5 filas de la tabla
samples.nyctaxi.trips
. Todo el código de Scala se ejecuta localmente, mientras que todo el código de Scala que involucra operaciones de DataFrame se ejecuta en el clúster en el área de trabajo remota de Azure Databricks y las respuestas de ejecución se envían de vuelta al autor de la llamada local.Depure el proyecto: establezca puntos de interrupción en el código y, a continuación, haga clic de nuevo en el icono de reproducir. Todo el código de Scala se depura localmente, mientras que todo el código de Scala continúa ejecutándose en el clúster en el área de trabajo remota de Azure Databricks. El código principal del motor de Spark no se puede depurar directamente desde el cliente.