Share via


Envoyer des travaux Spark sur un cluster Big Data SQL Server dans Visual Studio Code

Important

Le module complémentaire Clusters Big Data Microsoft SQL Server 2019 sera mis hors service. La prise en charge de la plateforme Clusters Big Data Microsoft SQL Server 2019 se terminera le 28 février 2025. Tous les utilisateurs existants de SQL Server 2019 avec Software Assurance seront entièrement pris en charge sur la plateforme, et le logiciel continuera à être maintenu par les mises à jour cumulatives SQL Server jusqu’à ce moment-là. Pour plus d’informations, consultez le billet de blog d’annonce et les Options Big Data sur la plateforme Microsoft SQL Server.

Découvrez comment utiliser l’extension Spark & Hive Tools for Visual Studio Code afin de créer et d’envoyer des scripts PySpark pour Apache Spark. Nous allons tout d’abord expliquer comment installer l’extension Spark & Hive Tools dans Visual Studio Code, puis nous montrerons comment envoyer des travaux à Spark.

L’extension Spark & Hive Tools peut être installée sur les plateformes prises en charge par Visual Studio Code, notamment Windows, Linux et macOS. Vous trouverez ci-dessous les prérequis pour les différentes plateformes.

Prérequis

Les éléments suivants sont requis pour effectuer les étapes décrites dans cet article :

Installer l’extension Spark & Hive Tools

Une fois que vous satisfaites aux prérequis, vous pouvez installer l’extension Spark & Hive Tools for Visual Studio Code. Effectuez les étapes suivantes pour installer l’extension Spark & Hive Tools :

  1. Ouvrez Visual Studio Code.

  2. Dans la barre de menus, accédez à Afficher>Extensions.

  3. Dans la zone de recherche, entrez Spark & Hive.

  4. Sélectionnez Outils Spark et Hive publié par Microsoft, dans les résultats de la recherche, puis sélectionnez Installer.

    Install Extension

  5. Rechargez quand cela est nécessaire.

Ouvrir le dossier de travail

Pour ouvrir un dossier de travail et créer un fichier dans Visual Studio Code, effectuez les étapes suivantes :

  1. Dans la barre de menus, accédez à Fichier>Ouvrir le dossier...>C:\SQLBDC\SQLBDCexample, puis sélectionnez le bouton Sélectionner un dossier. Le dossier s’affiche dans l’affichage Explorateur sur la gauche.

  2. Dans la vue Explorateur, sélectionnez le dossier SQLBDCexample, puis l’icône Nouveau fichier en regard du dossier de travail.

    New file

  3. Nommez le nouveau fichier avec l’extension de fichier .py (script Spark). Cet exemple utilise HelloWorld.py.

  4. Copiez le code suivant et collez-le dans le fichier 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))
    

Avant de pouvoir envoyer des scripts à vos clusters à partir de Visual Studio Code, vous devez lier un cluster Big Data SQL Server.

  1. À partir de la barre de menus, accédez à Afficher>Palette de commandes... , puis entrez Spark/Hive : Link a cluster (Spark / Hive : lier un cluster).

    link cluster command

  2. Sélectionnez le type de cluster lié SQL Server Big Data (Big Data SQL Server).

  3. Entrez le point de terminaison Big Data SQL Server.

  4. Entrez le nom d’utilisateur du cluster Big Data SQL Server.

  5. Entrez le mot de passe de l’administrateur d’utilisateurs.

  6. Définissez le nom d’affichage du cluster Big Data (facultatif).

  7. Listez les clusters, puis examinez l’affichage OUTPUT (SORTIE).

Lister les clusters

  1. À partir de la barre de menus, accédez à Afficher>Palette de commandes... , puis entrez Spark/Hive : List cluster.

  2. Examinez l’affichage OUTPUT (SORTIE). L’affichage montre vos clusters liés.

    Set a default cluster configuration

Définir le cluster par défaut

  1. Réouvrez le dossier SQLBDCexample créé précédemment s’il est fermé.

  2. Sélectionnez le fichier HelloWorld.py créé précédemment ; il s’ouvre alors dans l’éditeur de script.

  3. Si ce n’est déjà fait, liez un cluster.

  4. Cliquez avec le bouton droit sur l’éditeur de script, puis sélectionnez Spark / Hive: Set Default Cluster.

  5. Sélectionnez un cluster comme cluster par défaut pour le fichier de script actuel. Les outils mettent à jour automatiquement le fichier de configuration .VSCode\settings.json.

    Set default cluster configuration

Envoyer des requêtes PySpark interactives

Suivez les étapes ci-dessous pour envoyer des requêtes PySpark interactives :

  1. Réouvrez le dossier SQLBDCexample créé précédemment s’il est fermé.

  2. Sélectionnez le fichier HelloWorld.py créé précédemment ; il s’ouvre alors dans l’éditeur de script.

  3. Si ce n’est déjà fait, liez un cluster.

  4. Choisissez tout le code, cliquez avec le bouton droit sur l’éditeur de script, sélectionnez Spark: PySpark Interactive pour envoyer la requête, ou utilisez le raccourci Ctrl + Alt + I.

    pyspark interactive context menu

  5. Sélectionnez le cluster si vous n’avez pas spécifié de cluster par défaut. Après quelques instants, les résultats de Python Interactive s’affichent dans un nouvel onglet. Les outils vous permettent également d’envoyer un bloc de code au lieu du fichier de script entier à partir du menu contextuel.

    pyspark interactive python interactive window

  6. Saisissez « %%info », puis appuyez sur Maj + Entrée pour afficher les informations sur la tâche. (facultatif)

    view job information

    Remarque

    Si la case Extension Python activée n’est pas cochée dans les paramètres (le paramètre est activé par défaut), les résultats d’interaction PySpark envoyés utilisent l’ancienne fenêtre.

    pyspark interactive python extension disabled

Envoyer le travail de traitement par lots PySpark

  1. Réouvrez le dossier SQLBDCexample créé précédemment s’il est fermé.

  2. Sélectionnez le fichier HelloWorld.py créé précédemment ; il s’ouvre alors dans l’éditeur de script.

  3. Si ce n’est déjà fait, liez un cluster.

  4. Cliquez avec le bouton droit sur l’éditeur de script, puis sélectionnez Spark: PySpark Batch ou utilisez le raccourci clavier Ctrl + Alt + H.

  5. Sélectionnez le cluster si vous n’avez pas spécifié de cluster par défaut. Une fois que vous avez envoyé un travail Python, les journaux d’envoi s’affichent dans la fenêtre OUTPUT (SORTIE) de Visual Studio Code. L’URL de l’interface utilisateur Spark et l’URL de l’interface utilisateur Yarn sont également affichées. Vous pouvez ouvrir l’URL dans un navigateur web pour suivre l’état du travail.

    Submit Python job result

Configuration d’Apache Livy

La configuration d’Apache Livy est prise en charge. Elle peut être définie dans le fichier .VSCode\settings.json dans le dossier de l’espace de travail. Actuellement, la configuration Livy prend uniquement en charge le script Python. Pour plus d’informations, consultez le fichier Lisez-moi de Livy.

Comment déclencher une configuration Livy

Méthode 1

  1. Dans la barre de menus, accédez à Fichier>Préférences>Paramètres.
  2. Dans la zone de texte Paramètres de recherche, entrez Envoi de travaux HDInsight : Livy Conf.
  3. Sélectionnez Modifier dans settings.json pour le résultat de recherche approprié.

Méthode 2

Envoyez un fichier ; notez que le dossier .vscode est ajouté automatiquement au dossier de travail. Vous pouvez trouver la configuration Livy en sélectionnant settings.json sous .vscode.

Paramètres du projet :

Livy configuration

Remarque

Pour les paramètres driverMomory et executorMomry, définissez la valeur avec l’unité, par exemple 1gb ou 1024mb.

Configurations de Livy prises en charge

POST /batches

Corps de la demande

name description type
fichier Fichier contenant l’application à exécuter Chemin (obligatoire)
proxyUser Utilisateur dont l’identité doit être empruntée lors de l’exécution du travail string
ClassName Classe principale Java/Spark de l’application string
args Arguments de ligne de commande pour l’application Liste de chaînes
jars Fichiers jar à utiliser dans cette session Liste de chaînes
pyFiles Fichiers Python à utiliser dans cette session Liste de chaînes
files Fichiers à utiliser dans cette session Liste de chaînes
driverMemory Quantité de mémoire à utiliser pour le processus du pilote string
driverCores Nombre de cœurs à utiliser pour le processus du pilote int
executorMemory Quantité de mémoire à utiliser par processus d’exécuteur string
executorCores Nombre de cœurs à utiliser pour chaque exécuteur int
numExecutors Nombre d’exécuteurs à lancer pour cette session int
archives Archives à utiliser dans cette session Liste de chaînes
queue Nom de la file d’attente YARN destinataire de l’envoi string
name Nom de cette session string
conf Propriétés de configuration de Spark Mappage clé=valeur
:- :- :-

Corps de la réponse

Objet de traitement par lots créé.

name description type
id ID de session int
appId ID d’application de cette session String
appInfo Informations détaillées sur l’application Mappage clé=valeur
log Lignes de journal Liste de chaînes
state État du traitement par lots string
:- :- :-

Notes

La configuration de Livy assignée s’affiche dans le volet de sortie lors de l’envoi du script.

Fonctionnalités supplémentaires

L’extension Spark & Hive Tools for Visual Studio Code prend en charge les fonctionnalités suivantes :

  • Saisie semi-automatique IntelliSense. Des suggestions s’affichent pour les mots clés, les méthodes, les variables, etc. Différentes icônes représentent différents types d’objets.

    Spark & Hive Tools for Visual Studio Code IntelliSense object types

  • Marqueur d’erreur IntelliSense. Le service de langage souligne les erreurs de modification du script Hive.

  • Coloration syntaxique. Le service de langage utilise des couleurs différentes pour différencier les variables, les mots clés, les types de données, les fonctions, etc.

    Spark & Hive Tools for Visual Studio Code syntax highlights

  1. À partir de la barre de menus, accédez à Afficher>Palette de commandes... , puis entrez Spark / Hive: Unlink a cluster (Dissocier un cluster).

  2. Sélectionnez le cluster à dissocier.

  3. Examinez l’affichage OUTPUT (SORTIE).

Étapes suivantes

Pour plus d’informations sur le cluster Big Data SQL Server et les scénarios associés, consultez Clusters Big Data SQL Server.