Compartir a través de


Envío de trabajos de Spark en un clúster de macrodatos de SQL Server en Visual Studio Code

Importante

El complemento Clústeres de macrodatos de Microsoft SQL Server 2019 se va a retirar. La compatibilidad con Clústeres de macrodatos de SQL Server 2019 finalizará el 28 de febrero de 2025. Todos los usuarios existentes de SQL Server 2019 con Software Assurance serán totalmente compatibles con la plataforma, y el software se seguirá conservando a través de actualizaciones acumulativas de SQL Server hasta ese momento. Para más información, consulte la entrada de blog sobre el anuncio y Opciones de macrodatos en la plataforma Microsoft SQL Server.

Obtenga información sobre cómo usar Spark & Hive Tools para Visual Studio Code para crear y enviar scripts de PySpark para Apache Spark; primero, describiremos cómo instalar Spark & Hive Tools en Visual Studio Code y, después, explicaremos cómo enviar trabajos a Spark.

Spark & Hive Tools se puede instalar en las plataformas compatibles con Visual Studio Code, que son Windows, Linux y macOS. A continuación, encontrará los requisitos previos para las diferentes plataformas.

Prerrequisitos

Los elementos siguientes son necesarios para completar los pasos indicados en este artículo:

Instalar Spark & Hive Tools

Después de completar los requisitos previos, puede instalar Spark & Hive Tools para Visual Studio Code. Siga este procedimiento para instalar Spark & Hive Tools:

  1. Abra Visual Studio Code.

  2. En la barra de menús, vaya a Ver>Extensiones.

  3. En el cuadro de búsqueda, escriba Spark & Hive.

  4. Seleccione Spark & Hive Tools, publicado por Microsoft, en los resultados de búsqueda y seleccione Instalar.

    Install Extension

  5. Si es necesario, vuelva a cargar la aplicación.

Abrir la carpeta de trabajo

Siga este procedimiento para abrir una carpeta de trabajo y crear un archivo en Visual Studio Code:

  1. En la barra de menús, vaya a Archivo>Abrir carpeta…>C:\SQLBDC\SQLBDCexample y, después, haga clic en el botón Seleccionar carpeta. La carpeta se mostrará en la vista Explorador de la parte izquierda.

  2. En la vista Explorador, seleccione la carpeta SQLBDCexample y, después, haga clic en el icono de Nuevo archivo junto a la carpeta de trabajo.

    New file

  3. Asigne un nombre al nuevo archivo con la extensión de archivo .py (script de Spark). En este ejemplo, se usa HelloWorld.py.

  4. Copie y pegue el código siguiente en el archivo de script:

    import sys
    from operator import add
    from pyspark.sql import SparkSession, Row
    
    spark = SparkSession\
       .builder\
       .appName("PythonWordCount")\
       .getOrCreate()
    
    data = [Row(col1='pyspark and spark', col2=1), Row(col1='pyspark', col2=2), Row(col1='spark vs hadoop', col2=2), Row(col1='spark', col2=2), Row(col1='hadoop', col2=2)]
    df = spark.createDataFrame(data)
    lines = df.rdd.map(lambda r: r[0])
    
    counters = lines.flatMap(lambda x: x.split(' ')) \
       .map(lambda x: (x, 1)) \
       .reduceByKey(add)
    
    output = counters.collect()
    sortedCollection = sorted(output, key = lambda r: r[1], reverse = True)
    
    for (word, count) in sortedCollection:
       print("%s: %i" % (word, count))
    

Antes de enviar scripts a los clústeres desde Visual Studio Code, necesita vincular un clúster de macrodatos de SQL Server.

  1. En la barra de menús, vaya a Ver>Paleta de comandos... y escriba Spark / Hive: Link a Cluster (vincular un clúster).

    link cluster command

  2. Seleccione el tipo de clúster vinculado Macrodatos de SQL Server.

  3. Especifique el punto de conexión de macrodatos de SQL Server.

  4. Especifique el nombre de usuario del clúster de macrodatos de SQL Server.

  5. Escriba la contraseña del administrador de usuarios.

  6. Establezca el nombre para mostrar del clúster de macrodatos (opcional).

  7. Muestre una lista de los clústeres y revise la vista SALIDA.

Lista de clústeres

  1. En la barra de menús, vaya a Ver>Paleta de comandos... y escriba Spark / Hive: List Cluster (lista de clústeres).

  2. Revise la ventana de SALIDA. En la vista, se muestran los clústeres vinculados.

    Set a default cluster configuration

Establecer un clúster predeterminado

  1. Vuelva a abrir la carpeta SQLBDCexample creada anteriormente (si está cerrada).

  2. Seleccione el archivo HelloWorld.py que ha creado anteriormente para abrirlo en el editor de scripts.

  3. Si aún no lo ha hecho, vincule un clúster.

  4. Haga clic con el botón derecho en el editor de scripts y seleccione Spark / Hive: Set Default Cluster (Establecer clúster predeterminado).

  5. Seleccione un clúster como el clúster predeterminado para el archivo de script actual. Las herramientas actualizan automáticamente el archivo de configuración .VSCode\settings.json.

    Set default cluster configuration

Enviar consultas de PySpark interactivas

Para enviar consultas de PySpark interactivas, siga este procedimiento:

  1. Vuelva a abrir la carpeta SQLBDCexample creada anteriormente (si está cerrada).

  2. Seleccione el archivo HelloWorld.py que ha creado anteriormente para abrirlo en el editor de scripts.

  3. Si aún no lo ha hecho, vincule un clúster.

  4. Elija todo el código y haga clic con el botón derecho en el editor de scripts, seleccione Spark: PySpark Interactive para enviar la consulta, o bien use el método abreviado de teclado Ctrl + Alt + I.

    pyspark interactive context menu

  5. Si aún no ha especificado un clúster predeterminado, seleccione el clúster. Transcurridos unos instantes, los resultados de Python Interactive aparecen en una nueva pestaña. Las herramientas también permiten enviar un bloque de código en lugar de todo el archivo de script mediante el menú contextual.

    pyspark interactive python interactive window

  6. Escriba “%%info” y, después, presione Mayús + Entrar para ver la información del trabajo. (Opcional)

    view job information

    Nota:

    Si la opción Python Extension Enabled (Extensión de Python habilitada) está desactivada en la configuración (de forma predeterminada, esta opción está activada), los resultados de la interacción de PySpark enviados se mostrarán en la ventana anterior.

    pyspark interactive python extension disabled

Enviar trabajo por lotes de PySpark

  1. Vuelva a abrir la carpeta SQLBDCexample creada anteriormente (si está cerrada).

  2. Seleccione el archivo HelloWorld.py que ha creado anteriormente para abrirlo en el editor de scripts.

  3. Si aún no lo ha hecho, vincule un clúster.

  4. Haga clic con el botón derecho en el editor de scripts y seleccione Spark: PySpark Batch (Lote de PySpark), o bien use el método abreviado de teclado Ctrl + Alt + H.

  5. Si aún no ha especificado un clúster predeterminado, seleccione el clúster. Después de enviar trabajo de Python, los registros de envío se muestran en la ventana de SALIDA en Visual Studio Code. También se muestran la URL de la interfaz de usuario de Spark y la URL de la interfaz de usuario de Yarn. Para realizar un seguimiento del estado del trabajo, puede abrir la URL en un explorador web.

    Submit Python job result

Configuración de Apache Livy

Se admite la configuración de Apache Livy, que puede configurarse en el archivo .VSCode\settings.json de la carpeta del área de trabajo. En la actualidad, la configuración de Livy solo admite el script de Python. Para obtener más información, vea Livy README (LÉAME de Livy).

Cómo activar la configuración de Livy

Método 1

  1. En la barra de menús, vaya a Archivo>Preferencias>Configuración.
  2. En el cuadro de texto Configuración de búsqueda, escriba Envío de trabajo de HDInsight: Livy Conf.
  3. Seleccione Editar en settings.json para el resultado de la búsqueda relevante.

Método 2

Envíe un archivo; la carpeta .vscode se agregará automáticamente a la carpeta de trabajo. Para encontrar la configuración de Livy, seleccione settings.json, en .vscode.

Configuración del proyecto:

Livy configuration

Nota:

En el caso de las opciones driverMemory y executorMemory, establezca el valor con una unidad (por ejemplo, "1gb" o "1024mb").

Configuraciones de Livy admitidas

POST /batches

Cuerpo de la solicitud

name description type
archivo Archivo que contiene la aplicación que se ejecutará ruta (obligatorio)
proxyUser Usuario que se suplantará al ejecutar el trabajo string
className Clase principal de Java/Spark de la aplicación string
args Argumentos de la línea de comandos para la aplicación lista de cadenas
jars Archivos jar que se usarán en esta sesión Lista de cadenas
pyFiles Archivos de Python que se usarán en esta sesión Lista de cadenas
files Archivos que se usarán en esta sesión Lista de cadenas
driverMemory Cantidad de memoria que se usará para el proceso del controlador string
driverCores Número de núcleos que se usarán para el proceso del controlador int
executorMemory Cantidad de memoria que se usará por proceso de ejecutor string
executorCores Número de núcleos que se usará para cada ejecutor int
numExecutors Número de ejecutores que se iniciarán para esta sesión int
archives Archivos que se usarán en esta sesión Lista de cadenas
cola Nombre de la cola de YARN al que se realizará el envío string
name Nombre de esta sesión string
conf Propiedades de configuración de Spark Mapa de clave=valor
:- :- :-

Cuerpo de la respuesta

Objeto por lotes creado.

name description type
id Identificador de la sesión int
appId Identificador de aplicación de esta sesión String
appInfo Información detallada sobre la aplicación Mapa de clave=valor
log Líneas de registro lista de cadenas
state Estado del lote string
:- :- :-

Nota

La configuración de Livy asignada se mostrará en el panel de resultados al enviar el script.

Características adicionales

Spark & Hive para Visual Studio Code admite las características siguientes:

  • Autocompletar de IntelliSense. Se muestran sugerencias emergentes de palabras clave, métodos, variables, etc. Se representan diferentes tipos de objetos con distintos iconos.

    Spark & Hive Tools for Visual Studio Code IntelliSense object types

  • Marcador de error de IntelliSense. El servicio de lenguaje subraya los errores de edición en el script de Hive.

  • Sintaxis resaltada. El servicio de lenguaje usa distintos colores para diferenciar variables, palabras clave, tipos de datos, funciones, etc.

    Spark & Hive Tools for Visual Studio Code syntax highlights

  1. En la barra de menús, vaya a Vista>Paleta de comandos y escriba Spark / Hive: desvincular un clúster.

  2. Seleccione el clúster que quiera desvincular.

  3. Revise la vista SALIDA.

Pasos siguientes

Para obtener más información sobre los clústeres de macrodatos de SQL Server y los escenarios relacionados, vea Clústeres de macrodatos de SQL Server.