Partager via


Transformer des données avec Apache Spark et interroger avec SQL

Dans ce guide, vous allez :

  • Chargez les données dans OneLake avec l’explorateur de fichiers OneLake.

  • Utilisez un notebook Fabric pour lire les données sur OneLake et les mettre à jour sous forme de tableau Delta.

  • Analysez et transformez des données avec Spark à l'aide d'un notebook Fabric.

  • Interrogez une copie des données sur OneLake avec SQL.

Prérequis

Avant de commencer, vous devez :

  • Téléchargez et installez l'explorateur de fichiers OneLake.

  • Créez un espace de travail avec un élément Lakehouse.

  • Téléchargez le jeu de données WideWorldImportersDW. Vous pouvez utiliser Explorateur Stockage Azure pour vous connecter à https://fabrictutorialdata.blob.core.windows.net/sampledata/WideWorldImportersDW/csv/full/dimension_city et télécharger l'ensemble de fichiers csv. Vous pouvez également utiliser vos propres données csv et mettre à jour les détails si nécessaire.

Charger des données

Dans cette section, vous chargez des données de test dans votre lakehouse à l’aide de l’Explorateur de fichiers OneLake.

  1. Dans l’Explorateur de fichiers OneLake, accédez à votre lakehouse et créez un sous-répertoire nommé dimension_city sous le répertoire /Files.

    Capture d'écran du nouveau dossier créé dans l'explorateur de fichiers OneLake.

  2. Copiez vos exemples de fichiers csv dans le répertoire OneLake /Files/dimension_city à l'aide de l'explorateur de fichiers OneLake.

    Capture d'écran de la copie de fichiers vers OneLake dans l'explorateur de fichiers.

  3. Accédez à votre lakehouse dans le service Power BI ou Fabric et affichez vos fichiers.

    Capture d’écran de l’affichage de fichiers dans un lakehouse dans Fabric.

Créer une table Delta

Dans cette section, vous convertissez les fichiers CSV non managés en table managée au format Delta.

Remarque

Créez ou chargez toujours un raccourci vers les données Delta-Parquet directement dans la section Tables du lakehouse. N’imbriquez pas vos tables dans des sous-dossiers sous la section Tables. Le lakehouse ne reconnaît pas les sous-dossiers en tant que tables et les étiquette en tant que Non identifiés.

  1. Dans votre Lakehouse, sélectionnez Ouvrir un bloc-notes, puis Nouveau bloc-notes pour créer un bloc-notes.

    Capture d'écran de la création d'un nouveau bloc-notes dans Fabric.

  2. À l'aide du notebook Fabric, convertissez les fichiers csv au format Delta. L’extrait de code suivant lit les données du répertoire /Files/dimension_city créé par l’utilisateur et les convertit en tableau Delta dim_city.

    Copiez l’extrait de code dans l’éditeur de cellule du bloc-notes. Remplacez les espaces réservés par vos propres informations d’espace de travail, puis sélectionnez Exécuter la cellule ou Tout exécuter.

    import os
    from pyspark.sql.types import *
    for filename in os.listdir("/lakehouse/default/Files/dimension_city"):
        df=spark.read.format('csv').options(header="true",inferSchema="true").load("abfss://<YOUR_WORKSPACE_NAME>@onelake.dfs.fabric.microsoft.com/<YOUR_LAKEHOUSE_NAME>.Lakehouse/Files/dimension_city/"+filename,on_bad_lines="skip")
        df.write.mode("overwrite").format("delta").save("Tables/dim_city")
    

    Conseil

    Vous pouvez récupérer le chemin complet d’ABFS vers votre répertoire en cliquant avec le bouton droit sur le nom du répertoire et en sélectionnant Copier le chemin ABFS.

  3. Pour afficher votre nouveau tableau, actualisez la vue du répertoire /Tables. Sélectionnez d’autres options (...) en regard du répertoire Tables, puis sélectionnez Actualiser.

    Capture d’écran d’une table de visualisation dans un lakehouse dans Fabric.

Interroger et modifier des données

Dans cette section, vous utilisez un bloc-notes Fabric pour interagir avec les données de votre table.

  1. Interrogez votre table avec SparkSQL dans le même notebook Fabric.

    %%sql
    SELECT * from <LAKEHOUSE_NAME>.dim_city LIMIT 10;
    
  2. Modifiez le tableau Delta en ajoutant une nouvelle colonne nommée newColumn avec le type de données entier. Définissez la valeur 9 pour tous les enregistrements de cette colonne nouvellement ajoutée.

    %%sql
    
    ALTER TABLE <LAKEHOUSE_NAME>.dim_city ADD COLUMN newColumn int;
    
    UPDATE <LAKEHOUSE_NAME>.dim_city SET newColumn = 9;
    
    SELECT City,newColumn FROM <LAKEHOUSE_NAME>.dim_city LIMIT 10;
    

Vous pouvez également accéder à tout tableau Delta sur OneLake via un point de terminaison d’analytique SQL. Un point de terminaison d’analytique SQL référence la même copie physique de la table delta sur OneLake et offre l’expérience de T-SQL.

  1. Accédez à votre lakehouse, puis sélectionnez Lakehouse>Point de terminaison d’analytique SQL dans le menu déroulant.

    Capture d’écran montrant la navigation vers le point de terminaison d’analyse SQL.

  2. Sélectionnez nouvelle requête SQL pour interroger la table à l’aide de T-SQL.

  3. Copiez et collez le code suivant dans l’éditeur de requête, puis sélectionnez Exécuter.

    SELECT TOP (100) * FROM [<LAKEHOUSE_NAME>].[dbo].[dim_city];