Compartir a través de


Tutorial: Ejecución de código desde IntelliJ IDEA en proceso clásico

En este tutorial se muestra cómo empezar a trabajar con Databricks Connect para Scala mediante IntelliJ IDEA y el complemento Scala.

En este tutorial creará un proyecto en IntelliJ IDEA, instalará Databricks Connect para Databricks Runtime 13.3 LTS y versiones posteriores y ejecutará código sencillo en el proceso en el área de trabajo de Databricks desde IntelliJ IDEA.

Sugerencia

Para obtener información sobre cómo usar Conjuntos de recursos de Databricks para crear un proyecto de Scala que ejecute código en un proceso sin servidor, consulte Creación de un archivo JAR de Scala mediante conjuntos de recursos de Databricks.

Requisitos

Para completar este tutorial, debe cumplir los siguientes requisitos:

  • El área de trabajo, el entorno local y el proceso cumplen los requisitos de Databricks Connect para Scala. Consulte Requisitos de uso de Databricks Connect.

  • Debe tener disponible el identificador de clúster. Para obtener el identificador del clúster, en el área de trabajo, haga clic en Proceso en la barra lateral y, a continuación, haga clic en el nombre del clúster. En la barra de direcciones del explorador web, copie la cadena de caracteres entre clusters y configuration en la dirección URL.

  • Tiene el kit de desarrollo de Java (JDK) instalado en la máquina de desarrollo. Para obtener información sobre la versión que se va a instalar, consulte matriz de compatibilidad de versiones.

    Nota:

    Si no tiene instalado un JDK o si tiene varias instalaciones de JDK en el equipo de desarrollo, puede instalar o elegir un JDK específico más adelante en el paso 1. La elección de una instalación de JDK inferior o superior a la versión de JDK en el clúster podría producir resultados inesperados o que el código no se ejecute.

  • Tiene IntelliJ IDEA instalado. Este tutorial se ha probado con IntelliJ IDEA Community Edition 2023.3.6. Si usa otra versión o edición de IntelliJ IDEA, las instrucciones siguientes pueden variar.

  • Tiene instalado el complemento de Scala para IntelliJ IDEA.

Paso 1: Configuración de la autenticación de Azure Databricks

En este tutorial se usa Azure Databricks Autenticación de usuario a máquina (U2M) de OAuth y un perfil de configuración de Azure Databricks para autenticarse con el área de trabajo de Azure Databricks. Para usar un tipo de autenticación diferente en su lugar, consulte Configuración de propiedades de conexión.

La configuración de la autenticación U2M de OAuth requiere la CLI de Databricks, como se indica a continuación:

  1. Instale la CLI de Databricks:

    Linux, macOS

    Use Homebrew para instalar la CLI de Databricks mediante la ejecución de los dos comandos siguientes:

    brew tap databricks/tap
    brew install databricks
    

    Windows

    Puede usar winget, Chocolatey o el Subsistema de Windows para Linux (WSL) a fin de instalar la CLI de Databricks. Si no puede usar winget, Chocolatey o WSL, debe omitir este procedimiento y usar el símbolo del sistema o PowerShell para instalar la CLI de Databricks desde el origen en su lugar.

    Nota:

    La instalación de la CLI de Databricks con Chocolatey es Experimental.

    A fin de usar winget para instalar la CLI de Databricks, ejecute los dos comandos siguientes y reinicie el símbolo del sistema:

    winget search databricks
    winget install Databricks.DatabricksCLI
    

    Para usar Chocolatey a fin de instalar la CLI de Databricks, ejecute el siguiente comando:

    choco install databricks-cli
    

    Para usar WSL a fin de instalar la CLI de Databricks, haga lo siguiente:

    1. Instale curl y zip mediante WSL. Para obtener más información, consulte la documentación del sistema operativo.

    2. Use WSL para instalar la CLI de Databricks mediante la ejecución del siguiente comando:

      curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
      
  2. Confirme que la CLI de Databricks está instalada mediante la ejecución del siguiente comando, que muestra la versión actual instalada de la CLI de Databricks: Esta versión debe ser 0.205.0 o superior.

    databricks -v
    

Inicie la autenticación U2M de OAuth, como se indica a continuación:

  1. Use el CLI de Databricks para iniciar la administración de tokens de OAuth localmente mediante la ejecución del siguiente comando para cada área de trabajo de destino.

    En el comando siguiente, reemplace <workspace-url> por la dirección URL de Azure Databricks por área de trabajo, por ejemplo, https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --configure-cluster --host <workspace-url>
    
  2. La CLI de Databricks le pide que guarde la información que especificó como un perfil de configuración de Azure Databricks. Presione Enter para aceptar el nombre del perfil sugerido o escriba el nombre de un perfil nuevo o existente. Cualquier perfil existente con el mismo nombre se sobrescribe con la información que ha ingresado. Puede usar perfiles para cambiar rápidamente el contexto de autenticación entre varias áreas de trabajo.

    Para obtener una lista de los perfiles existentes, en una terminal o una línea de comandos por separado, use la CLI de Databricks para ejecutar el comando databricks auth profiles. Para ver la configuración existente de un perfil específico, ejecute el comando databricks auth env --profile <profile-name>.

  3. En el explorador web, complete las instrucciones en pantalla para iniciar sesión en el área de trabajo de Azure Databricks.

  4. En la lista de clústeres disponibles que aparecen en el terminal o el símbolo del sistema, use las teclas de flecha arriba y flecha abajo para seleccionar el clúster de Azure Databricks de destino en el área de trabajo y a continuación, presione Enter. También puede escribir cualquier parte del nombre de visualización del clúster para filtrar la lista de clústeres disponibles.

  5. Para ver el valor actual del token de OAuth de un perfil y la próxima marca de tiempo de expiración del token, ejecute uno de los siguientes comandos:

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    Si tiene varios perfiles con el mismo valor de --host, es posible que tenga que especificar las opciones --host y -p para ayudar a la CLI de Databricks a encontrar la información correcta del token de OAuth coincidente.

Paso 2: Crear el proyecto

  1. Iniciar IntelliJ IDEA.

  2. En el menú principal, haga clic en Archivo > Nuevo > Proyecto.

  3. Ponga a su proyecto un nombre descriptivo.

  4. En Ubicación, haga clic en el icono de carpeta y complete las instrucciones en pantalla para especificar la ruta de acceso al nuevo proyecto de Scala.

  5. En Idioma, haga clic en Scala.

  6. En Sistema de compilación, haga clic en sbt.

  7. En la lista desplegable JDK, seleccione una instalación existente de JDK en el equipo de desarrollo que coincida con la versión de JDK del clúster, o bien seleccione Descargar JDK y siga las instrucciones en pantalla para descargar un JDK que coincida con la versión de JDK en el clúster. Consulte los Requisitos.

    Nota:

    La elección de una instalación de JDK anterior o inferior a la versión de JDK en el clúster podría producir resultados inesperados o que el código no se ejecute.

  8. En la lista desplegable sbt, seleccione la versión más reciente.

  9. En la lista desplegable Scala, seleccione la versión de Scala que coincida con la versión de Scala en el clúster. Consulte los Requisitos.

    Nota:

    La elección de una versión de Scala anterior o inferior a la versión de Scala en el clúster podría producir resultados inesperados o que el código no se ejecute.

  10. Asegúrese de que el cuadro Descargar orígenes junto a Scala está activado.

  11. En Prefijo de paquete, escriba algún valor de prefijo de paquete para los orígenes del proyecto, por ejemplo org.example.application.

  12. Asegúrese de que la casilla Agregar código de ejemplo esté activada.

  13. Haga clic en Crear.

Creación del proyecto IntelliJ IDEA

Paso 3: Agregar el paquete de Databricks Connect

  1. Con el nuevo proyecto de Scala abierto, en la ventana de la herramienta Proyecto (Ver > Ventana de herramientas > Proyecto), abra el archivo denominado build.sbt en project-name> target.

  2. Agregue el código siguiente al final del build.sbt archivo, que declara la dependencia del proyecto en una versión específica de la biblioteca de Databricks Connect para Scala, compatible con la versión de Databricks Runtime del clúster:

    libraryDependencies += "com.databricks" %% "databricks-connect" % "17.0.+"
    

    Reemplace 17.0 por la versión de la biblioteca de Databricks Connect que coincida con la versión de Databricks Runtime en el clúster. Por ejemplo, Databricks Connect 16.4.+ coincide con Databricks Runtime 16.4 LTS. Puede encontrar los números de versión de la biblioteca de Databricks Connect en el repositorio central de Maven.

    Nota:

    Al compilar con Databricks Connect, no incluya artefactos de Apache Spark como org.apache.spark:spark-core en el proyecto. En su lugar, compile directamente en Databricks Connect.

  3. Haga clic en el icono de notificación Cargar cambios de sbt para actualizar su proyecto de Scala con la nueva ubicación y dependencia de la biblioteca.

    Instale el paquete de Databricks Connect

  4. Espere hasta que desaparezca el indicador de progreso sbt en la parte inferior del IDE. El proceso de carga sbt puede tardar unos minutos en completarse.

Paso 4: Agregar un código

  1. En la ventana de herramientas Proyecto, abra el archivo denominado Main.scala, en project-name> src > main > scala.

  2. Reemplace cualquier código existente en el archivo por el siguiente código y, a continuación, guarde el archivo, en función del nombre del perfil de configuración.

    Si el perfil de configuración del paso 1 se denomina DEFAULT, reemplace cualquier código existente en el archivo por el siguiente código y, a continuación, guarde el archivo:

    package org.example.application
    
    import com.databricks.connect.DatabricksSession
    import org.apache.spark.sql.SparkSession
    
    object Main {
      def main(args: Array[String]): Unit = {
        val spark = DatabricksSession.builder().remote().getOrCreate()
        val df = spark.read.table("samples.nyctaxi.trips")
        df.limit(5).show()
      }
    }
    

    Si el perfil de configuración del paso 1 no se denomina DEFAULT, reemplace cualquier código existente en el archivo por el siguiente código. Reemplace el marcador de posición <profile-name> por el nombre del perfil de configuración del paso 1 y guarde el archivo:

    package org.example.application
    
    import com.databricks.connect.DatabricksSession
    import com.databricks.sdk.core.DatabricksConfig
    import org.apache.spark.sql.SparkSession
    
    object Main {
      def main(args: Array[String]): Unit = {
        val config = new DatabricksConfig().setProfile("<profile-name>")
        val spark = DatabricksSession.builder().sdkConfig(config).getOrCreate()
        val df = spark.read.table("samples.nyctaxi.trips")
        df.limit(5).show()
      }
    }
    

Paso 5: 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 6: Ejecutar el código

  1. Inicie el clúster de destino en el área de trabajo remota de Azure Databricks.
  2. Una vez iniciado el clúster, en el menú principal, haga clic en Ejecutar > ejecutar "Main".
  3. En la ventana de herramientas Ejecutar (Ver > Ventana de herramientas > Ejecutar), en la pestaña Principal, aparecen las primeras cinco filas de la tabla samples.nyctaxi.trips.

Paso 7: Depurar el código

  1. Con el clúster en ejecución, en el código anterior, haga clic en el margen junto a df.limit(5).show() para establecer un punto de interrupción.

  2. En el menú principal, haga clic en >. En la ventana de herramientas Depurar (Ver > Ventana de herramientas > Depurar), en la pestaña Consola, haga clic en el icono de la calculadora (Evaluar expresión).

  3. Escriba la expresión df.schema.

  4. Haga clic en Evaluar para mostrar el esquema de DataFrame.

  5. En la barra lateral de la ventana de la herramienta Depurar , haga clic en el icono de flecha verde (Reanudar programa). Las primeras 5 filas de la samples.nyctaxi.trips tabla aparecen en el panel Consola .

    Depuración del proyecto IntelliJ IDEA