Compartir a través de


Compilación de un archivo JAR de Scala mediante conjuntos de recursos de Databricks

En este artículo se describe cómo compilar, implementar y ejecutar un archivo JAR de Scala con Conjuntos de recursos de Databricks. Para obtener información sobre las agrupaciones, consulte ¿Qué son los conjuntos de recursos de Databricks?.

Para obtener una configuración de ejemplo que compila un ARCHIVO JAR de Java y la carga en el catálogo de Unity, consulte Agrupación que carga un archivo JAR en el catálogo de Unity.

Requisitos

Este tutorial requiere que el área de trabajo de Databricks cumpla los siguientes requisitos:

Además, el entorno de desarrollo local debe tener instalado lo siguiente:

Paso 1: Crear la agrupación

En primer lugar, cree la agrupación mediante el comando bundle init y la plantilla de agrupación de proyectos de Scala.

La plantilla de paquete JAR de Scala crea un paquete que construye un archivo JAR, lo carga en el volumen especificado y define un trabajo con una tarea de Spark utilizando el archivo JAR que se ejecuta en computación sin servidor. Scala del proyecto de plantilla define una UDF que aplica una transformación sencilla a un dataframe de ejemplo y genera los resultados. El origen de la plantilla se encuentra en el repositorio bundle-examples.

  1. Ejecute el comando siguiente en una ventana de terminal en la máquina de desarrollo local. Solicita el valor de algunos campos obligatorios.

    databricks bundle init default-scala
    
  2. Para obtener un nombre para el proyecto, escriba my_scala_project. Con ello se determina el nombre del directorio raíz de esta agrupación. Este directorio raíz se crea en el directorio de trabajo actual.

  3. Para la ruta de acceso de volúmenes, proporcione la ruta de acceso de Unity Catalog en Databricks donde desee que se cree el directorio de agrupación que contendrá el archivo JAR y otros artefactos; por ejemplo, /Volumes/my-catalog/my-schema/bundle-volumes.

    Nota:

    El proyecto de plantilla configura el cómputo sin servidor, pero si lo cambia para usar cómputo clásico, puede que el administrador tenga que agregar a la lista de permitidos la ruta de Volúmenes JAR que especifique. Consulte Lista de permitidos de bibliotecas y scripts de inicialización en procesos con el modo de acceso estándar (anteriormente modo de acceso compartido).

Paso 2: Configuración de las opciones de máquina virtual

  1. Importe el directorio actual en intelliJ donde build.sbt se encuentra.

  2. Elija Java 17 en IntelliJ. Vaya a Archivo>Estructura de Proyecto>SDKs.

  3. Abierto src/main/scala/com/examples/Main.scala.

  4. Vaya a la configuración de Main para agregar opciones de máquina virtual:

    Editar principal

    Adición de opciones de máquina virtual

  5. Agregue lo siguiente a las opciones de máquina virtual:

    --add-opens=java.base/java.nio=ALL-UNNAMED
    

Sugerencia

Como alternativa, o si usa Visual Studio Code, agregue lo siguiente al archivo de compilación sbt:

fork := true
javaOptions += "--add-opens=java.base/java.nio=ALL-UNNAMED"

A continuación, ejecute la aplicación desde el terminal:

sbt run

Paso 3: Explora el paquete

Para ver los archivos que generó la plantilla, cambie al directorio raíz de la agrupación recién creada y abra este directorio en el IDE. La plantilla usa sbt para compilar y empaquetar archivos Scala y funciona con Databricks Connect para el desarrollo local. Para obtener información detallada, consulte el README.md del proyecto generado.

Los archivos de especial interés incluyen los siguientes:

  • databricks.yml: este archivo especifica el nombre de programación del lote, incluye una referencia a la definición del trabajo y especifica la configuración sobre el área de trabajo de destino.
  • resources/my_scala_project.job.yml: este archivo especifica la configuración del clúster y la tarea JAR del trabajo.
  • src/: este directorio incluye los archivos de origen del proyecto de Scala.
  • build.sbt: este archivo contiene configuraciones importantes de compilación y biblioteca dependiente.
  • README.md: este archivo contiene estos pasos de introducción y las instrucciones de compilación locales y la configuración.

Paso 4: Validar el archivo de configuración de agrupación del proyecto

A continuación, compruebe si la configuración del lote es válida mediante el comando bundle validate.

  1. En el directorio raíz, ejecute el comando de la CLI bundle validate de Databricks. Entre otras comprobaciones, esto comprueba que el volumen especificado en el archivo de configuración existe en el área de trabajo.

    databricks bundle validate
    
  2. Si se devuelve un resumen de la configuración de la agrupación, indica que la validación se ha realizado correctamente. Si se devuelven errores, corrija los errores y repita este paso.

Si realiza algún cambio en la agrupación después de este paso, repita este paso para comprobar si la configuración de la agrupación sigue siendo válida.

Paso 5: Implementación del proyecto local en el área de trabajo remota

Ahora implemente la agrupación en el área de trabajo remota de Azure Databricks mediante el comando bundle deploy. Este paso compila el archivo JAR y lo carga en el volumen especificado.

  1. Ejecute el comando de la CLI bundle deploy de Databricks:

    databricks bundle deploy -t dev
    
  2. Para comprobar si se implementó el archivo JAR compilado localmente:

    1. En la barra lateral del área de trabajo de Azure Databricks, haga clic en Explorador de catálogos.
    2. Vaya a la ruta de acceso de destino del volumen que especificó al inicializar la agrupación. El archivo JAR debe encontrarse en la siguiente carpeta dentro de esa ruta de acceso: /my_scala_project/dev/<user-name>/.internal/.
  3. Para comprobar si se creó el trabajo:

    1. En la barra lateral del área de trabajo de Azure Databricks, haga clic en Trabajos y canalizaciones.
    2. Opcionalmente, seleccione los filtros Trabajos y Propiedad de mí .
    3. Haga clic en [dev <your-username>] my_scala_project.
    4. Haga clic en la pestaña Tareas.

    Debe haber una tarea: main_task.

Si realiza algún cambio en la agrupación después de este paso, repita los pasos de validación e implementación.

Paso 6: ejecución del proyecto implementado

Por último, ejecute el trabajo de Azure Databricks mediante el comando bundle run.

  1. En el directorio raíz, ejecute el comando de la CLI bundle run de Databricks y especifique el nombre del trabajo en el archivo my_scala_project.job.ymlde definición :

    databricks bundle run -t dev my_scala_project
    
  2. Copie el valor de Run URL que aparece en el terminal y pegue este valor en el explorador web para abrir el área de trabajo de Azure Databricks.

  3. En el área de trabajo de Azure Databricks, después de que la tarea se complete correctamente y muestre una barra de título verde, haga clic en la tarea main_task para ver los resultados.