Partekatu honen bidez:


Uso de Azure Toolkit for IntelliJ para crear aplicaciones de Apache Spark para un clúster de HDInsight

En este artículo se muestra cómo desarrollar aplicaciones de Apache Spark en Azure HDInsight con el complemento Azure Toolkit para el IDE de IntelliJ. Azure HDInsight es un servicio de análisis administrado de código abierto en la nube. El servicio le permite usar marcos de código abierto como Hadoop, Apache Spark, Apache Hive y Apache Kafka.

Puede usar el complemento Azure Toolkit de varias maneras:

  • Desarrollar y enviar una aplicación Spark con Scala en un clúster de Spark en HDInsight.
  • Tener acceso a los recursos del clúster de Azure HDInsight Spark.
  • Desarrollar y ejecutar localmente una aplicación Spark en Scala.

En este artículo aprenderá a:

  • Usar el complemento Azure Toolkit for IntelliJ
  • Desarrollar aplicaciones de Apache Spark
  • Enviar una aplicación al clúster de Azure HDInsight

Requisitos previos

Instale el complemento de Scala para IntelliJ IDEA.

Pasos de instalación del complemento Scala:

  1. Abra IntelliJ IDEA.

  2. En la pantalla de bienvenida, vaya a Configure>Plugins (Configurar > Complementos) para abrir la ventana Plugins (Complementos).

    IntelliJ IDEA enables scala plugin.

  3. Seleccione Install (Instalar) para el complemento de Scala que se presenta en la nueva ventana.

    IntelliJ IDEA installs scala plugin.

  4. Después de que el complemento se instale correctamente, debe reiniciar el IDE.

Creación de una aplicación Spark en Scala para un clúster de HDInsight Spark

  1. Inicie IntelliJ IDEA y seleccione Create New Project (Crear proyecto) para abrir la ventana New Project (Nuevo proyecto).

  2. Seleccione Azure Spark/HDInsight en el panel izquierdo.

  3. Seleccione Spark Project (Scala) (Proyecto de Spark [Scala]) en la ventana principal.

  4. En la lista desplegable Build tool (Herramienta de compilación), seleccione una de las siguientes opciones:

    • Maven: para agregar compatibilidad con el asistente para la creación de proyectos de Scala.

    • SBT para administrar las dependencias y compilar el proyecto de Scala.

      IntelliJ IDEA New Project dialog box.

  5. Seleccione Siguiente.

  6. En la ventana New Project (Nuevo proyecto), proporcione la siguiente información:

    Propiedad Descripción
    Nombre de proyecto Escriba un nombre. En este artículo se usa myApp.
    Ubicación del proyecto Escriba la ubicación para guardar el proyecto.
    Project SDK (SDK del proyecto) Este campo puede estar en blanco la primera vez que se usa IDEA. Seleccione New... (Nuevo...) y vaya a su JDK.
    Versión de Spark El asistente de creación integra la versión adecuada de los SDK de Spark y Scala. Si la versión del clúster de Spark es anterior a 2.0, seleccione Spark 1.x. De lo contrario, seleccione Spark2.x. En este ejemplo se usa Spark 2.3.0 (Scala 2.11.8) .

    Selecting the Apache Spark SDK.

  7. Seleccione Finalizar. El proyecto puede tardar unos minutos en estar disponible.

  8. El proyecto de Spark crea automáticamente un artefacto. Para ver el artefacto, siga estos pasos:

    a. En la barra de menús, vaya a Archivo>Estructura del proyecto... .

    b. En la ventana Estructura del proyecto, seleccione Artefactos.

    c. Seleccione Cancelar después de ver el artefacto.

    Artifact info in the dialog box.

  9. Agregue el código fuente de aplicación mediante los siguientes pasos:

    a. En Proyecto, vaya a myApp>src>main>scala.

    b. Haga clic con el botón derecho en scala, y, a continuación, vaya a Nuevo>Clase Scala.

    Commands for creating a Scala class from Project.

    c. En el cuadro de diálogo Crear nueva clase Scala, proporcione un nombre, seleccione Objeto en la lista desplegable Variante y seleccione Aceptar.

    Create New Scala Class dialog box.

    d. A continuación, el archivo myApp.scala se abre en la vista principal. Reemplace el código predeterminado por el código encontrado a continuación:

    import org.apache.spark.SparkConf
    import org.apache.spark.SparkContext
    
    object myApp{
        def main (arg: Array[String]): Unit = {
        val conf = new SparkConf().setAppName("myApp")
        val sc = new SparkContext(conf)
    
        val rdd = sc.textFile("wasbs:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv")
    
        //find the rows that have only one digit in the seventh column in the CSV file
        val rdd1 =  rdd.filter(s => s.split(",")(6).length() == 1)
    
        rdd1.saveAsTextFile("wasbs:///HVACOut")
        }
    
    }
    

    El código lee los datos de HVAC.csv (disponible en todos los clústeres de HDInsight Spark), recupera las filas que solo tienen un dígito en la séptima columna del archivo CSV y escribe la salida en /HVACOut en el contenedor de almacenamiento predeterminado para el clúster.

Conéctese a su clúster de HDInsight

El usuario puede iniciar sesión en la suscripción a Azure o vincular un clúster de HDInsight. Use el nombre de usuario y la contraseña de Ambari o credenciales unidas a un dominio para conectarse al clúster de HDInsight.

Inicie sesión en la suscripción de Azure

  1. En la barra de menús, vaya a Ver>Ventanas de herramientas>Azure Explorer.

    IntelliJ IDEA shows azure explorer.

  2. En Azure Explorer, haga clic con el botón derecho en el nodo Azure y después seleccione Iniciar sesión.

    IntelliJ IDEA explorer right-click azure.

  3. En el cuadro de diálogo de inicio de sesión en Azure, seleccione Inicio de sesión del dispositivo y, a continuación, Iniciar sesión.

    `IntelliJ IDEA azure sign-in device login`.

  4. En el cuadro de diálogo Inicio de sesión del dispositivo de Azure, haga clic en Copiar y abrir.

    `IntelliJ IDEA azure device login`.

  5. En la interfaz del explorador, pegue el código y, a continuación, haga clic en Siguiente.

    `Microsoft enter code dialog for HDI`.

  6. Escriba sus credenciales de Azure y, a continuación, cierre el explorador.

    `Microsoft enter e-mail dialog for HDI`.

  7. Cuando haya iniciado sesión, en el cuadro de diálogo Select Subscriptions (Seleccionar suscripciones) se enumeran todas las suscripciones de Azure asociadas a las credenciales. Seleccione su suscripción y luego seleccione el botón Seleccionar.

    The Select Subscriptions dialog box.

  8. En Azure Explorer, expanda HDInsight para ver los clústeres de HDInsight Spark de sus suscripciones.

    IntelliJ IDEA Azure Explorer main view.

  9. Para ver los recursos (por ejemplo, las cuentas de almacenamiento) asociados al clúster, puede expandir un nodo de nombre de clúster.

    Azure Explorer storage accounts.

Puede vincular un clúster de HDInsight mediante el nombre de usuario administrado de Apache Ambari. De forma similar, para un clúster de HDInsight unido a un dominio, puede vincular con el dominio y el nombre de usuario, como user1@contoso.com. También puede vincular el clúster del servicio de Livy.

  1. En la barra de menús, vaya a Ver>Ventanas de herramientas>Azure Explorer.

  2. En Azure Explorer, haga clic con el botón derecho en el nodo HDInsight y, a continuación, seleccione Vincular un clúster.

    Azure Explorer link cluster context menu.

  3. Las opciones disponibles en la ventana Vincular un clúster variarán dependiendo del valor que seleccione en la lista desplegable Tipo de recurso de vínculo. Escriba estos valores y, a continuación, seleccione Aceptar.

    • Clúster de HDInsight

      Propiedad Value
      Tipo de recurso de vínculo Seleccione Clúster de HDInsight en la lista desplegable.
      Nombre o dirección URL del clúster Escriba el nombre del clúster.
      Tipo de autenticación Dejar como Autenticación básica
      Nombre de usuario Escriba el nombre de usuario del clúster, el valor predeterminado es admin.
      Contraseña Escriba la contraseña del nombre de usuario.

      IntelliJ IDEA link a cluster dialog.

    • Livy Service

      Propiedad Value
      Tipo de recurso de vínculo Seleccione Livy Service en la lista desplegable.
      Punto de conexión de Livy Escribir punto de conexión de Livy
      Cluster Name Escriba el nombre del clúster.
      Punto de conexión de Yarn Opcional.
      Tipo de autenticación Dejar como Autenticación básica
      Nombre de usuario Escriba el nombre de usuario del clúster, el valor predeterminado es admin.
      Contraseña Escriba la contraseña del nombre de usuario.

      IntelliJ IDEA link Livy cluster dialog.

  4. Puede ver su clúster vinculado en el nodo HDInsight.

    Azure Explorer linked cluster1.

  5. También puede desvincular un clúster de Azure Explorer.

    Azure Explorer unlinked cluster.

Ejecución de una aplicación Spark en Scala en un clúster de HDInsight Spark

Después de crear una aplicación de Scala, puede enviarla al clúster.

  1. En el proyecto, vaya a myApp>src>main>scala>myApp. Haga clic con el botón derecho en myApp y seleccione Enviar aplicación Spark (probablemente estará en la parte inferior de la lista).

    The Submit Spark Application to HDInsight command.

  2. En el cuadro de diálogo Enviar aplicación Spark, seleccione 1. Spark en HDInsight.

  3. En la ventana Editar configuración, proporcione los valores siguientes y, a continuación, seleccione Aceptar:

    Propiedad Value
    Clústeres de Spark (solo Linux) Seleccione el clúster de HDInsight Spark en el que quiere ejecutar la aplicación.
    Seleccione un artefacto para enviarlo Deje la configuración predeterminada.
    Nombre de clase principal el valor predeterminado es la clase principal del archivo seleccionado. Puede cambiar la clase si selecciona los puntos suspensivos ( ... ) y elige otra clase.
    Configuraciones del trabajo Puede cambiar las claves o valores predeterminados. Para más información, consulte API de REST de Apache Livy.
    Argumentos de la línea de comandos Puede especificar los argumentos divididos por un espacio para la clase principal, si es necesario.
    Archivos jar a los que se hace referencia y archivos a los que se hace referencia puede escribir las rutas de acceso de los archivos y los Jar a los que se hace referencia, si los hubiera. También puede examinar archivos en el sistema de archivos virtual de Azure, que actualmente solo admite el clúster de ADLS Gen 2. Para obtener más información: Apache Spark Configuration (Configuración de Apache Spark). Consulte también cómo cargar recursos en un clúster.
    Almacenamiento de carga del trabajo Expanda para mostrar opciones adicionales.
    Tipo de almacenamiento Seleccione la opción para usar Azure Blob para cargar en la lista desplegable.
    Cuenta de almacenamiento Escriba su cuenta de Storage.
    Clave de almacenamiento Escriba su clave de almacenamiento.
    Contenedor de almacenamiento Seleccione su contenedor de almacenamiento en la lista desplegable una vez que se hayan escrito Cuenta de Storage y Clave de almacenamiento.

    The Spark Submission dialog box.

  4. Seleccione SparkJobRun para enviar el proyecto para el clúster seleccionado. La pestaña Remote Spark Job in Cluster (Trabajo de Spark remoto en clúster) muestra el progreso de la ejecución del trabajo en la parte inferior. Puede detener la aplicación si hace clic en el botón rojo.

    Apache Spark Submission window.

Depuración de aplicaciones Apache Spark de forma local o remota en un clúster de HDInsight

También se recomienda otra manera de enviar la aplicación Spark al clúster. Puede hacerlo estableciendo los parámetros del IDE de configuraciones de ejecución o depuración. Consulte Depuración de aplicaciones de Apache Spark de forma local o remota en un clúster de HDInsight con Azure Toolkit for IntelliJ mediante SSH.

Acceso y administración de clústeres de HDInsight Spark mediante el uso del kit de herramientas de Azure para IntelliJ

Puede realizar varias operaciones mediante Azure Toolkit for IntelliJ. La mayoría de las operaciones se inician desde Azure Explorer. En la barra de menús, vaya a Ver>Ventanas de herramientas>Azure Explorer.

Acceso a la vista de trabajo

  1. En Azure Explorer, vaya a HDInsight><Su clúster >>Trabajos.

    IntelliJ Azure Explorer Job view node.

  2. En el panel derecho, la pestaña Spark Job View (Vista de trabajos de Spark) muestra todas las aplicaciones que se ejecutaron en el clúster. Seleccione el nombre de la aplicación para la que desea ver más detalles.

    Spark Job View Application details.

  3. Para mostrar información básica del trabajo de ejecución, mantenga el mouse sobre el gráfico del trabajo. Para ver el gráfico de fases y la información que todo trabajo genera, seleccione un nodo del gráfico del trabajo.

    Spark Job View Job stage details.

  4. Para ver registros usados con frecuencia, como Driver Stderr, Driver Stdout y Directory Info, seleccione la pestaña Registro.

    Spark Job View Log details.

  5. Puede ver la interfaz de usuario del historial de Spark y la interfaz de usuario de YARN (en el nivel de aplicación). Seleccione un enlace en la parte superior de la ventana.

Acceso al servidor de historial de Spark

  1. En Azure Explorer, expanda HDInsight, haga clic con el botón derecho en el nombre del clúster de Spark y seleccione Abrir IU de historial de Spark.

  2. Cuando se le solicite, escriba las credenciales de administrador del clúster, que especificó al configurar el clúster.

  3. En el panel del servidor de historial de Spark, puede usar el nombre de aplicación para buscar la aplicación que acaba de terminar de ejecutar. En el código anterior, se establece el nombre de la aplicación mediante val conf = new SparkConf().setAppName("myApp"). El nombre de la aplicación de Spark es myApp.

Inicio del portal de Ambari

  1. En Azure Explorer, expanda HDInsight, haga clic con el botón derecho en el nombre del clúster de Spark y seleccione Abrir el portal de administración de clústeres (Ambari) .

  2. Cuando se le pida, escriba las credenciales de administrador para el clúster. Estas son las credenciales que especificó durante el proceso de configuración de clúster.

Administración de suscripciones de Azure

De forma predeterminada, el kit de herramientas de Azure para IntelliJ enumera los clústeres de Spark de todas las suscripciones de Azure. Si es necesario, puede especificar las suscripciones a las que desea tener acceso.

  1. En Azure Explorer, haga clic con el botón derecho en el nodo raíz de Azure y seleccione Seleccionar suscripciones.

  2. En la ventana Seleccionar suscripciones, desactive las casillas situadas junto a las suscripciones a las que no desea tener acceso y seleccione Cerrar.

Consola de Spark

Puede ejecutar la consola local de Spark (Scala) o la consola de sesión interactiva de Spark Livy (Scala).

Consola local de Spark (Scala)

Asegúrese de que cumple el requisito previo de WINUTILS.EXE.

  1. En la barra de menús, vaya a Ejecutar>Editar configuraciones...

  2. En la ventana Ejecutar/depurar configuraciones, en el panel izquierdo, vaya a Apache Spark en HDInsight>[Spark en HDInsight] myApp.

  3. En la ventana principal, seleccione la pestaña Locally Run .

  4. Proporcione los valores siguientes y seleccione Aceptar:

    Propiedad Value
    Clase principal del trabajo el valor predeterminado es la clase principal del archivo seleccionado. Puede cambiar la clase si selecciona los puntos suspensivos ( ... ) y elige otra clase.
    Variables de entorno Asegúrese de que el valor de HADOOP_HOME sea correcto.
    Ubicación de WINUTILS.exe Asegúrese de que la ruta de acceso sea correcta.

    Local Console Set Configuration.

  5. En el proyecto, vaya a myApp>src>main>scala>myApp.

  6. En la barra de menús, vaya a Herramientas>Consola de Spark>Run Spark Local Console(Scala) (Ejecutar consola local de Spark (Scala)).

  7. Pueden aparecer dos cuadros de diálogo para preguntarle si quiere corregir automáticamente las dependencias. Si es así, seleccione Autocorrección.

    IntelliJ IDEA Spark Auto Fix dialog1.

    IntelliJ IDEA Spark Auto Fix dialog2.

  8. El aspecto de la consola debería ser similar al de la siguiente imagen. En la ventana de la consola, escriba sc.appName y presione CTRL + Entrar. Se muestra el resultado. Para detener la consola local, haga clic en el botón rojo.

    IntelliJ IDEA local console result.

Consola de sesión interactiva de Spark Livy (Scala)

  1. En la barra de menús, vaya a Ejecutar>Editar configuraciones...

  2. En la ventana Ejecutar/depurar configuraciones, en el panel izquierdo, vaya a Apache Spark en HDInsight>[Spark en HDInsight] myApp.

  3. En la ventana principal, seleccione la pestaña Remotely Run in Cluster .

  4. Proporcione los valores siguientes y seleccione Aceptar:

    Propiedad Value
    Clústeres de Spark (solo Linux) Seleccione el clúster de HDInsight Spark en el que quiere ejecutar la aplicación.
    Nombre de clase principal el valor predeterminado es la clase principal del archivo seleccionado. Puede cambiar la clase si selecciona los puntos suspensivos ( ... ) y elige otra clase.

    Interactive Console Set Configuration.

  5. En el proyecto, vaya a myApp>src>main>scala>myApp.

  6. En la barra de menús, vaya a Herramientas>Consola de Spark>Run Spark Livy Interactive Session Console(Scala) (Ejecutar consola interactiva de Spark Livy (Scala)).

  7. El aspecto de la consola debería ser similar al de la siguiente imagen. En la ventana de la consola, escriba sc.appName y presione CTRL + Entrar. Se muestra el resultado. Para detener la consola local, haga clic en el botón rojo.

    IntelliJ IDEA Interactive Console Result.

Envío de la selección a la consola de Spark

Resulta cómodo predecir el resultado del script mediante el envío de código a la consola local o a la consola de sesión interactiva de Livy (Scala). Puede resaltar parte del código en el archivo de Scala y hacer clic con el botón derecho en Send Selection To Spark Console (Enviar selección a consola de Spark). El código seleccionado se envía a la consola. El resultado se muestra después del código en la consola. La consola comprueba si hay errores.

Send Selection to Spark Console.

Integración con HDInsight Identity Broker (HIB)

Conexión al clúster de HDInsight ESP con el agente de HDInsight Identity Broker (HIB)

Puede seguir los pasos normales para iniciar sesión en la suscripción de Azure para conectarse a su clúster de HDInsight ESP con el agente de HDInsight Identity Broker (HIB). Después de iniciar sesión, verá la lista de clústeres en Azure Explorer. Para conocer más instrucciones, consulte Conexión al clúster de HDInsight.

Ejecución de una aplicación Spark en Scala en un clúster de HDInsight Spark con el agente de HDInsight Identity Broker (HIB)

Puede seguir los pasos normales para enviar el trabajo a un clúster de HDInsight ESP con el agente de HDInsight Identity Broker (HIB). Consulte Ejecución de una aplicación Spark en Scala en un clúster de HDInsight Spark para más instrucciones.

Cargaremos los archivos necesarios en una carpeta denominada con su cuenta de inicio de sesión y podrá ver la ruta de acceso de carga en el archivo de configuración.

upload path in the configuration.

Consola de Spark en un clúster de HDInsight ESP con el agente de HDInsight Identity Broker (HIB)

Puede ejecutar Spark Local Console (Scala) o ejecutar Spark Livy Interactive Session Console (Scala) en un clúster de HDInsight ESP con el agente de HDInsight Identity Broker (HIB). Consulte Consola de Spark para obtener más instrucciones.

Nota

En el caso del clúster de HDInsight ESP con HDInsight Identity Broker (HIB), las opciones para vincular un clúster y depurar las aplicaciones de Apache Spark de forma remota no se admiten actualmente.

Rol de solo lectura

Cuando los usuarios envían trabajos a un clúster con el permiso de rol de solo lectura, se requieren credenciales de Ambari.

  1. Inicie sesión con la cuenta del rol de solo lectura.

  2. En Azure Explorer, expanda HDInsight para ver los clústeres de HDInsight de su suscripción. Los clústeres marcados como "Role:Reader" tienen únicamente permiso de solo lectura.

    `IntelliJ Azure Explorer Role:Reader`.

  3. Haga clic derecho en el clúster con el permiso de rol de solo lectura. Seleccione Link this cluster (Vincular este clúster) en el menú contextual para vincular el clúster. Escriba el nombre de usuario y la contraseña de Ambari.

    IntelliJ Azure Explorer link this cluster.

  4. Si el clúster se vinculó correctamente, se actualizará HDInsight. La fase del clúster quedará vinculada.

    IntelliJ Azure Explorer linked dialog.

  1. Haga clic en el nodo Trabajos y aparecerá la ventana emergente Cluster Job Access Denied (Se denegó el acceso al trabajo del clúster).

  2. Haga clic en Link this cluster (Vincular este clúster) para vincular el clúster.

    cluster job access denied dialog.

  1. Cree una configuración de HDInsight. Luego, seleccione Remotely Run in Cluster (Ejecutar de forma remota en clúster).

  2. Seleccione un clúster, que tiene permiso de rol de solo lectura para clústeres de Spark (solo Linux) . Aparece un mensaje de advertencia. Puede hacer clic en Link this cluster (Vincular este clúster) para vincular el clúster.

    IntelliJ IDEA run/debug configuration create.

Visualización de cuentas de almacenamiento

  • Para los clústeres con permiso de rol de solo lectura, haga clic en el nodo Cuentas de almacenamiento y aparecerá la ventana emergente Storage Access Denied (Se denegó el acceso al almacenamiento). Seleccione Abrir Explorador de Azure Storage para abrir el explorador de Storage.

    `IntelliJ IDEA Storage Access Denied`.

    IntelliJ IDEA Storage Access Denied button.

  • Para los clústeres vinculados, haga clic en el nodo Cuentas de almacenamiento y aparecerá la ventana emergente Storage Access Denied (Se denegó el acceso al almacenamiento). Puede hacer clic en Open Azure Storage (Abrir Azure Storage) para abrir el Explorador de Storage.

    `IntelliJ IDEA Storage Access Denied2`.

    IntelliJ IDEA Storage Access Denied2 button.

Conversión de las aplicaciones IntelliJ IDEA existentes para usar el kit de herramientas de Azure para IntelliJ

Puede convertir las aplicaciones Spark en Scala existentes creadas en IntelliJ IDEA para que sean compatibles con el kit de herramientas de Azure para IntelliJ. Esto le permitirá utilizar el complemento para enviar las aplicaciones a un clúster de HDInsight Spark.

  1. Para una aplicación Spark en Scala existente creada con IntelliJ IDEA, abra el archivo .iml asociado.

  2. En el nivel raíz, hay un elemento de module similar al siguiente texto:

    <module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
    

    Edite el elemento para agregar UniqueKey="HDInsightTool" de forma que el elemento de module sea similar al siguiente texto:

    <module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4" UniqueKey="HDInsightTool">
    
  3. Guarde los cambios. La aplicación ahora debe ser compatible con el kit de herramientas de Azure para IntelliJ. Puede comprobarlo si hace clic con el botón derecho en el nombre de proyecto en Proyecto. El menú emergente ahora debería tener la opción Submit Spark Application to HDInsight (Enviar aplicación Spark a HDInsight).

Limpieza de recursos

Si no va a seguir usando esta aplicación, elimine el clúster que creó mediante los siguientes pasos:

  1. Inicie sesión en Azure Portal.

  2. En el cuadro Búsqueda en la parte superior, escriba HDInsight.

  3. Seleccione Clústeres de HDInsight en Servicios.

  4. En la lista de clústeres de HDInsight que aparece, seleccione el botón ... situado junto al clúster que ha creado en este artículo.

  5. Seleccione Eliminar. Seleccione .

Azure portal deletes HDInsight cluster.

Errores y soluciones

Desmarque la carpeta src como Orígenes si recibe errores de compilación, tal y como se indica a continuación:

Screenshot showing the build failed.

Desmarque la carpeta src como Orígenes para solucionar esta incidencia:

  1. Vaya a Archivo y seleccione la estructura del proyecto.

  2. Seleccione los módulos en Configuración del proyecto.

  3. Seleccione el archivo src y desmárquelo como Orígenes.

  4. Haga clic en el botón Aplicar y, a continuación, haga clic en el botón Aceptar para cerrar el cuadro de diálogo.

    Screenshot showing the unmark the src as sources.

Pasos siguientes

En este artículo, ha aprendido a usar el complemento Azure Toolkit for IntelliJ para desarrollar aplicaciones de Apache Spark escritas en Scala. Después, las ha enviado a un clúster de HDInsight Spark directamente desde el entorno de desarrollo integrado (IDE) de IntelliJ. En el siguiente artículo podrá ver cómo extraer en una herramienta de análisis de BI, como Power BI, los datos que registró en Apache Spark.