Analyser avec Apache Spark

Dans ce tutoriel, vous allez découvrir les étapes de base permettant de charger et d’analyser des données avec Apache Spark pour Azure Synapse.

Créer un pool Apache Spark serverless

  1. Dans Synapse Studio, dans le volet de gauche, sélectionnez Gérer>Pools Apache Spark.
  2. Sélectionnez Nouveau
  3. Pour Nom du pool Apache Spark, entrez Spark1.
  4. Pour Taille du nœud, entrez Petite.
  5. Pour Nombre de nœuds, définissez la valeur minimale 3 et la valeur maximale 3
  6. Sélectionnez Vérifier + créer>Créer. Votre pool Apache Spark sera prêt en quelques secondes.

Comprendre les pools Apache Spark serverless

Un pool Spark serverless est un moyen d’indiquer comment un utilisateur souhaite travailler avec Spark. Lorsque vous commencez à utiliser un pool, une session Spark est créée si nécessaire. Le pool contrôle le nombre de ressources Spark utilisées par cette session ainsi que la durée de la session avant qu’elle ne s’arrête automatiquement. Vous payez pour les ressources Spark utilisées pendant cette session et non pour le pool lui-même. Ainsi, un pool Spark vous permet d’utiliser Apache Spark sans gérer les clusters. Cela fonctionne de la même manière qu’un pool SQL serverless.

Analyser les données de NYC Taxi avec un pool Spark

  1. Dans Synapse Studio, accédez au hub Développer.

  2. Créer un nouveau bloc-notes.

  3. Créez une cellule de code et collez-y le code suivant :

    %%pyspark
    df = spark.read.load('abfss://users@contosolake.dfs.core.windows.net/NYCTripSmall.parquet', format='parquet')
    display(df.limit(10))
    
  4. Modifiez l’URI de chargement afin qu’il fasse référence à l’exemple de fichier dans votre compte de stockage selon le schéma d’URI abfss.

  5. Dans le notebook, dans le menu Attacher à, choisissez le pool Spark serverless Spark1 que nous avons créé précédemment.

  6. Sélectionnez Exécuter dans la cellule. Synapse démarre une nouvelle session Spark pour exécuter cette cellule si nécessaire. Si une nouvelle session Spark est nécessaire, sa création prend environ 2 à 5 minutes. Une fois qu’une session est créée, l’exécution de la cellule prend environ 2 secondes.

  7. Si vous souhaitez simplement voir le schéma du dataframe, exécutez une cellule avec le code suivant :

    %%pyspark
    df.printSchema()
    

Charger les données NYC Taxi dans la base de données Spark appelée nyctaxi

Les données sont disponibles via le dataframe nommé df. Chargez-les dans une base de données Spark nommée nyctaxi.

  1. Ajoutez une nouvelle cellule de code au notebook, puis entrez le code suivant :

    %%pyspark
    spark.sql("CREATE DATABASE IF NOT EXISTS nyctaxi")
    df.write.mode("overwrite").saveAsTable("nyctaxi.trip")
    

Analyser les données des taxis de New York à l’aide de Spark et des notebooks

  1. Créez une nouvelle cellule de code, puis entrez le code suivant.

    %%pyspark
    df = spark.sql("SELECT * FROM nyctaxi.trip") 
    display(df)
    
  2. Exécutez la cellule pour afficher les données NYC Taxi que nous avons chargées dans la base de données Spark nyctaxi.

  3. Créez une nouvelle cellule de code, puis entrez le code suivant. Nous allons analyser ces données et enregistrer les résultats dans une table appelée nyctaxi.passengercountstats.

    %%pyspark
    df = spark.sql("""
       SELECT passenger_count,
           SUM(trip_distance) as SumTripDistance,
           AVG(trip_distance) as AvgTripDistance
       FROM nyctaxi.trip
       WHERE trip_distance > 0 AND passenger_count > 0
       GROUP BY passenger_count
       ORDER BY passenger_count
    """) 
    display(df)
    df.write.saveAsTable("nyctaxi.passengercountstats")
    
  4. Dans les résultats de la cellule, sélectionnez Graphique pour afficher les données visualisées.

Étapes suivantes