Partager via


Démarrage rapide : Créer un pool Apache Spark serverless dans Azure Synapse Analytics à l’aide d’outils web

Dans ce guide de démarrage rapide, vous allez apprendre à créer un pool Apache Spark serverless dans Azure Synapse à l’aide d’outils web. Vous allez ensuite apprendre à vous connecter au pool Apache Spark et à exécuter des requêtes Spark SQL sur des fichiers et des tables. Apache Spark permet l’analytique rapide des données et le calcul de cluster à l’aide du traitement en mémoire. Pour plus d’informations sur Spark dans Azure Synapse, consultez Vue d’ensemble : Apache Spark sur Azure Synapse.

Important

La facturation pour les instances Spark est calculée au prorata par minute, que vous les utilisiez ou non. Veillez à arrêter votre instance Spark une fois que vous avez terminé de l’utiliser, ou définissez un délai d’attente court. Pour plus d’informations, consultez la section Nettoyer les ressources de cet article.

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Prerequisites

Connectez-vous au portail Azure.

Connectez-vous au portail Azure.

Si vous n’avez pas d’abonnement Azure, créez un compte Azure gratuit avant de commencer.

Créer un carnet de notes

Un notebook est un environnement interactif qui prend en charge différents langages de programmation. Le notebook vous permet d’interagir avec vos données, de combiner du code, du texte en Markdown, et d’effectuer des visualisations simples.

  1. Dans la vue du portail Azure pour l’espace de travail Azure Synapse que vous souhaitez utiliser, sélectionnez Lancer Synapse Studio.

  2. Une fois Synapse Studio lancé, sélectionnez Développer. Sélectionnez ensuite l’icône «+ » pour ajouter une nouvelle ressource.

  3. À partir de là, sélectionnez Notebook. Un nouveau notebook est créé et ouvert avec un nom généré automatiquement.

    Nouveau bloc-notes

  4. Dans la fenêtre Propriétés , indiquez un nom pour le bloc-notes.

  5. Dans la barre d’outils, cliquez sur Publier.

  6. S’il n’existe qu’un seul pool Apache Spark dans votre espace de travail, il est sélectionné par défaut. Utilisez la liste déroulante pour sélectionner le pool Apache Spark approprié si aucun n’est sélectionné.

  7. Cliquez sur Ajouter du code. La langue par défaut est Pyspark. Vous allez utiliser une combinaison de Pyspark et Spark SQL. Par conséquent, le choix par défaut est correct. D’autres langages pris en charge sont Scala et .NET pour Spark.

  8. Ensuite, vous créez un objet DataFrame Spark simple à manipuler. Dans ce cas, vous le créez à partir du code. Il existe trois lignes et trois colonnes :

    new_rows = [('CA',22, 45000),("WA",35,65000) ,("WA",50,85000)]
    demo_df = spark.createDataFrame(new_rows, ['state', 'age', 'salary'])
    demo_df.show()
    
  9. Exécutez maintenant la cellule à l’aide de l’une des méthodes suivantes :

    • Appuyez sur Maj + Entrée.

    • Sélectionnez l’icône de lecture bleue à gauche de la cellule

    • Sélectionnez le bouton Exécuter tout dans la barre d’outils.

      Créer un objet frame de données

  10. Si l’instance du pool Apache Spark n’est pas déjà en cours d’exécution, elle est démarrée automatiquement. Vous pouvez voir l’état de l’instance du pool Apache Spark sous la cellule que vous exécutez et également dans le panneau d’état en bas du bloc-notes. Selon la taille du pool, le démarrage doit prendre 2 à 5 minutes. Une fois que le code a fini de s'exécuter, des informations sont affichées sous la cellule montrant le temps qu'il a mis à s'exécuter et comment cela s'est déroulé. Dans la cellule de sortie, vous voyez la sortie.

    Sortie de l’exécution d’une cellule

  11. Les données existent désormais dans un DataFrame à partir de là, vous pouvez utiliser les données de plusieurs façons différentes. Vous en aurez besoin dans différents formats pour le reste de ce guide de démarrage rapide.

  12. Entrez le code ci-dessous dans une autre cellule et exécutez-le, ce qui crée une table Spark, un fichier CSV et un fichier Parquet avec des copies des données :

     demo_df.createOrReplaceTempView('demo_df')
     demo_df.write.csv('demo_df', mode='overwrite')
     demo_df.write.parquet('abfss://<<TheNameOfAStorageAccountFileSystem>>@<<TheNameOfAStorageAccount>>.dfs.core.windows.net/demodata/demo_df', mode='overwrite')
    

    Si vous utilisez l’Explorateur de stockage, il est possible de voir l’impact des deux façons différentes d’écrire un fichier utilisé ci-dessus. Quand aucun système de fichiers n’est spécifié, la valeur par défaut est utilisée, dans ce cas default>user>trusted-service-user>demo_df. Les données sont enregistrées à l’emplacement du système de fichiers spécifié.

    Notez que dans les formats « csv » et « parquet », les opérations d’écriture d’un répertoire sont créées avec de nombreux fichiers partitionnés.

    Affichage de l'exploreur de stockage pour la sortie

    Capture d’écran mettant en évidence le chemin d’accès par défaut > demodata > demo_df.

Exécuter des instructions Spark SQL

Le langage SQL (Structured Query Language) est le langage le plus courant et le plus utilisé pour interroger et définir des données. Spark SQL fonctionne comme extension d’Apache Spark pour le traitement des données structurées à l’aide de la syntaxe SQL familière.

  1. Collez le code suivant dans une cellule vide, puis exécutez le code. La commande répertorie les tables du pool.

    %%sql
    SHOW TABLES
    

    Lorsque vous utilisez un notebook avec votre pool Azure Synapse Apache Spark, vous obtenez une présélection sqlContext que vous pouvez utiliser pour exécuter des requêtes à l’aide de Spark SQL. %%sql indique au notebook d’utiliser la présélection sqlContext pour exécuter la requête. La requête récupère les 10 premières lignes d’une table système fournie avec tous les pools Apache Spark Azure Synapse par défaut.

  2. Exécutez une autre requête pour afficher les données dans demo_df.

    %%sql
    SELECT * FROM demo_df
    

    Le code produit deux cellules de sortie, une qui contient des résultats de données l’autre, qui affiche la vue de travail.

    Par défaut, la vue des résultats affiche une grille. Toutefois, il existe un sélecteur d’affichage sous la grille qui permet à la vue de basculer entre la grille et les affichages graphiques.

    Sortie de requête dans Azure Synapse Spark

  3. Dans le sélecteur d’affichage , sélectionnez Graphique.

  4. Sélectionnez l’icône Options d’affichage à partir du côté droit.

  5. Dans le champ Type de graphique, sélectionnez « graphique à barres ».

  6. Dans le champ de colonne de l’axe X, sélectionnez « State ».

  7. Dans le champ de colonne de l’axe Y, sélectionnez « salaire ».

  8. Dans le champ Agrégation , sélectionnez « AVG ».

  9. Sélectionnez Appliquer.

    Sortie de graphique dans Azure Synapse Spark

  10. Il est possible d’obtenir la même expérience d’exécution de SQL, mais sans avoir à changer de langage. Pour ce faire, remplacez la cellule SQL ci-dessus par cette cellule PySpark, l’expérience de sortie est la même, car la commande d’affichage est utilisée :

    display(spark.sql('SELECT * FROM demo_df'))
    
  11. Chacune des cellules exécutées précédemment avait la possibilité d’accéder au serveur d’historique et à la surveillance. En cliquant sur les liens, vous accédez à différentes parties de l’expérience utilisateur.

Note

Certaines de la documentation officielle Apache Spark s’appuient sur l’utilisation de la console Spark, qui n’est pas disponible sur Synapse Spark. Utilisez plutôt les environnements notebook ou IntelliJ.

Nettoyer les ressources

Azure Synapse enregistre vos données dans Azure Data Lake Storage. Vous pouvez laisser une instance Spark s’arrêter en toute sécurité lorsqu’elle n’est pas utilisée. Vous êtes facturé pour un pool Apache Spark serverless tant qu’il est en cours d’exécution, même s’il n’est pas utilisé.

Étant donné que les frais pour le pool sont plusieurs fois plus que les frais de stockage, il est économique de laisser les instances Spark s’arrêter lorsqu’elles ne sont pas utilisées.

Pour vous assurer que l’instance Spark est arrêtée, terminez les sessions connectées (notebooks). Le pool s’arrête lorsque l’heure d’inactivité spécifiée dans le pool Apache Spark est atteinte. Vous pouvez également sélectionner la session de fin dans la barre d’état en bas du bloc-notes.

Étapes suivantes

Dans ce guide de démarrage rapide, vous avez appris à créer un pool Apache Spark serverless et à exécuter une requête Spark SQL de base.