Compartir a través de


Envío de trabajos de Spark en el 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.

Aprenda a usar Spark y Hive Tools para Visual Studio Code para crear y enviar scripts de PySpark para Apache Spark, en primer lugar describiremos cómo instalar las herramientas de Spark y Hive en Visual Studio Code y, a continuación, veremos cómo enviar trabajos a Spark.

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

Prerrequisitos

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

Instalar Spark & Hive Tools

Una vez completados los requisitos previos, puede instalar Spark y Hive Tools para Visual Studio Code. Complete los pasos siguientes para instalar Spark y Hive Tools:

  1. Abre 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(Herramientas de Spark y Hive), publicada por Microsoft, en los resultados de búsqueda y, a continuación, seleccione Instalar.

    Instalar extensión

  5. Vuelva a cargar cuando sea necesario.

Abrir carpeta de trabajo

Complete los pasos siguientes para abrir una carpeta de trabajo y crear un archivo en Visual Studio Code:

  1. En la barra de menús, vaya a Abrir>carpeta...>C:\SQLBDC\SQLBDCexample y, a continuación, seleccione 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, a continuación, el icono Nuevo archivo junto a la carpeta de trabajo.

    Nuevo archivo

  3. Asigne al nuevo archivo el nombre con la .py extensión de archivo (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))
    

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

  1. En la barra de menús, vaya a Ver> paleta decomandos... y escriba Spark /Hive: Vincular un clúster.

    comando de agrupación de enlaces

  2. Seleccione tipo de clúster vinculado SQL Server Big Data.

  3. Introduzca el endpoint de Big Data de SQL Server.

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

  5. Escriba la contraseña del administrador del usuario.

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

  7. Enumere los clústeres y revise la vista OUTPUT para comprobarlo.

Lista de clústeres

  1. En la barra de menús, vaya a Ver>paleta de comandos... y escriba Spark /Hive: Enumerar clúster.

  2. Revise la ventana de SALIDA. La vista mostrará los clústeres vinculados.

    Establecimiento de una configuración de clúster predeterminada

Establecimiento del clúster predeterminado

  1. Re-Open la carpeta SQLBDCexample creada anteriormente si está cerrada.

  2. Seleccione el archivo HelloWorld.py creado anteriormente y se abrirá en el editor de scripts.

  3. Vincule un clúster si aún no lo ha hecho.

  4. Haga clic con el botón derecho en el editor de scripts y seleccione Spark /Hive: 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.js.

    Establecimiento de la configuración predeterminada del clúster

Enviar consultas de PySpark interactivas

Para enviar consultas interactivas de PySpark, siga estos pasos:

  1. Vuelva a abrir la carpeta SQLBDCexample creada anteriormente si se cierra.

  2. Seleccione el archivo HelloWorld.py creado anteriormente y se abrirá en el editor de scripts.

  3. Vincule un clúster si aún no lo ha hecho.

  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 use el método abreviado Ctrl + Alt + I.

    menú contextual interactivo de pyspark

  5. Seleccione el clúster si no ha especificado un clúster predeterminado. Después de unos instantes, los resultados interactivos de Python aparecen en una nueva pestaña. Las herramientas también permiten enviar un bloque de código en lugar del archivo de script completo mediante el menú contextual.

    ventana interactiva de Python de pyspark

  6. Escriba "%%info"y presione Mayús + Entrar para ver la información del trabajo. (Opcional)

    ver información del trabajo

    Nota:

    Cuando la extensión de Python habilitada está desactivada en la configuración (se activa la configuración predeterminada), los resultados de interacción de pyspark enviados usarán la ventana anterior.

    extensión de Python interactiva pyspark deshabilitada

Enviar trabajo por lotes de PySpark

  1. Vuelva a abrir la carpeta SQLBDCexample creada anteriormente si se cierra.

  2. Seleccione el archivo HelloWorld.py creado anteriormente y se abrirá en el editor de scripts.

  3. Vincule un clúster si aún no lo ha hecho.

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

  5. Seleccione el clúster si no ha especificado un clúster predeterminado. 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 dirección URL de la interfaz de usuario de Spark y la dirección URL de la interfaz de usuario de Yarn . Para realizar un seguimiento del estado del trabajo, puede abrir la URL en un explorador web.

    Envío del resultado del trabajo de Python

Configuración de Apache Livy

Se admite la configuración de Apache Livy; se puede establecer en . VSCode\settings.jsen la carpeta del espacio de trabajo. En la actualidad, la configuración de Livy solo admite el script de Python. Para obtener más información, consulte ReadME de Livy.

Cómo desencadenar 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 trabajos 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 y observe que la .vscode carpeta se agrega automáticamente a la carpeta de trabajo. Para encontrar la configuración de Livy, seleccione settings.json en .vscode.

Configuración del proyecto:

Configuración de Livy

Nota:

Para las configuraciones driverMemory y executorMemory, establezca el valor con unidad, por ejemplo, 1 GB o 1024 MB.

Configuraciones de Livy admitidas

POST /batches

Cuerpo de la solicitud

nombre descripción tipo
archivo Archivo que contiene la aplicación que se ejecutará ruta (obligatorio)
proxyUser Usuario que se suplantará al ejecutar el trabajo cuerda / cadena
nombreDeClase Clase principal de Java/Spark de la aplicación cuerda / cadena
args Argumentos de línea de comandos para la aplicación lista de cadenas
Frascos archivos jar que se usarán en esta sesión Lista de cadenas
Archivos pyFiles Archivos de Python que se van a usar en esta sesión Lista de cadenas
Archivos archivos que se usarán en esta sesión Lista de cadenas
memoria del controlador Cantidad de memoria que se va a usar para el proceso del controlador cuerda / cadena
driverCores Número de núcleos que se van a usar para el proceso de controlador Int
memoriaDelEjecutor Cantidad de memoria que se va a usar por proceso de ejecutor cuerda / cadena
executorCores Número de núcleos que se usarán para cada ejecutor Int
numExecutors Número de ejecutores que se van a iniciar para esta sesión Int
archivo Archivos que se usarán en esta sesión Lista de cadenas
fila Nombre de la cola de YARN a la que se envió cuerda / cadena
nombre Nombre de esta sesión cuerda / cadena
Conf Propiedades de configuración de Spark Mapa de clave=valor
:- :- :-

Cuerpo de la respuesta

Objeto de lote creado.

nombre descripción tipo
identificación Identificador de sesión Int
ID de la aplicación Identificador de aplicación de esta sesión Cuerda
appInfo Información detallada de la aplicación Mapa de clave=valor
registro Líneas de registro lista de cadenas
estado Estado del lote cuerda / cadena
:- :- :-

Nota:

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

Características adicionales

Spark y Hive para Visual Studio Code admiten las siguientes características:

  • Autocompletar de IntelliSense. Aparecerán sugerencias para palabra clave, métodos, variables y mucho más. Los diferentes iconos representan diferentes tipos de objetos.

    Herramientas de Spark y Hive para los tipos de objetos de IntelliSense en Visual Studio Code

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

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

    Resaltado de la sintaxis de Spark y Hive Tools para Visual Studio Code

  1. En la barra de menús, vaya a Ver> paleta decomandos... y, a continuación, escriba Spark /Hive: Desvincular un clúster.

  2. Seleccione clúster para desvincular.

  3. Revise la vista SALIDA.

Pasos siguientes

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