Partager via


Partie 1 du tutoriel : Utiliser Apache Spark pour ingérer des données dans un lac Microsoft Fabric

Ce tutoriel ingère des données dans des lakehouses Fabric au format Delta Lake. Nous définissons ici quelques termes importants :

  • Lakehouse - Un lakehouse est une collection de fichiers, de dossiers et/ou de tables qui représentent une base de données sur un lac de données. Le moteur Spark et le moteur SQL utilisent des ressources lakehouse pour le traitement du Big Data. Lorsque vous utilisez des tables au format Delta open source, ce traitement inclut des fonctionnalités de transaction ACID améliorées.

  • Delta Lake - Delta Lake est une couche de stockage open source qui apporte des transactions ACID, une gestion évolutive des métadonnées et un traitement par lots et streaming des données vers Apache Spark. En tant que format de table de données, Delta Lake étend les fichiers de données Parquet avec un journal des transactions basé sur des fichiers pour les transactions ACID et la gestion évolutive des métadonnées.

  • Les jeux de données Azure Open sont des jeux de données publics organisés qui ajoutent des fonctionnalités spécifiques au scénario aux solutions Machine Learning. Cela conduit à des modèles plus précis. Les jeux de données ouverts sont des ressources cloud qui résident sur le stockage Microsoft Azure. Apache Spark, l’API REST, la fabrique de données et d’autres outils peuvent accéder à Open Datasets.

Dans ce tutoriel, vous utilisez Apache Spark pour :

  • Lire des données à partir de conteneurs Azure Open Datasets.
  • Écrire des données dans une table delta lakehouse Fabric.

Conditions préalables

  • Obtenez un abonnement Microsoft Fabric . Vous pouvez également vous inscrire à une version d’évaluation gratuite de Microsoft Fabric .

  • Connectez-vous à Microsoft Fabric.

  • Utilisez le sélecteur d’expérience en bas à gauche de votre page d’accueil pour basculer vers Fabric.

    Capture d’écran du menu sélecteur d’expérience montrant où sélectionner Science des données.

  • Ajoutez un lakehouse à ce notebook. Dans ce tutoriel, vous téléchargez d’abord des données à partir d’un objet blob public. Ensuite, les données sont stockées dans cette ressource de type "lakehouse".

Suivez avec un bloc-notes

Le notebook 1-ingest-data.ipynb accompagne ce tutoriel.

Données de perte de clients bancaires

Le jeu de données contient des informations sur l’état d’attrition pour 10 000 clients. Il inclut également des attributs qui peuvent influencer le churn, par exemple :

  • Score de crédit
  • Emplacement géographique (Allemagne, France, Espagne)
  • Sexe (mâle, femelle)
  • Âge
  • Durée (le nombre d’années pendant laquelle le client était un client à cette banque)
  • Solde du compte
  • Salaire estimé
  • Nombre de produits achetés par le biais de la banque
  • État de la carte de crédit (qu’un client dispose ou non d’une carte de crédit)
  • État du membre actif (que le client dispose ou non d’un statut client bancaire actif)

Le jeu de données inclut également ces colonnes :

  • numéro de ligne
  • ID client
  • nom de famille du client

Ces colonnes ne devraient pas avoir d’influence sur la décision d’un client de quitter la banque.

La fermeture d’un compte bancaire client définit la perte de clientèle de ce client. La colonne de l'ensemble de données exited est relative à l'abandon des clients. Peu de contexte sur ces attributs est disponible. Vous devez donc continuer sans informations générales sur le jeu de données. Notre objectif est de comprendre comment ces attributs contribuent à l’état exited .

Exemples de lignes de jeu de données :

« CustomerID » « Nom de famille » « CreditScore » « Geography » « Sexe » Âge Titularisation « Balance » « NumOfProducts » « HasCrCard » « IsActiveMember » SalaireEstimé « Terminé »
15634602 Hargrave 619 France Femelle 42 2 0,00 1 1 1 101348.88 1
15647311 Colline 608 Espagne Femelle 41 1 83807.86 1 0 1 112542.58 0

Télécharger le jeu de données et charger sur lakehouse

Conseil

Lorsque vous définissez les paramètres suivants, vous pouvez facilement utiliser ce notebook avec différents jeux de données :

IS_CUSTOM_DATA = False  # if TRUE, dataset has to be uploaded manually

DATA_ROOT = "/lakehouse/default"
DATA_FOLDER = "Files/churn"  # folder with data files
DATA_FILE = "churn.csv"  # data file name

L’extrait de code suivant télécharge une version publiquement disponible du jeu de données, puis stocke cette ressource dans un lac Fabric :

Important

Veillez à ajouter un lakehouse au notebook avant de l’exécuter. L’échec de cette opération entraîne une erreur.

import os, requests
if not IS_CUSTOM_DATA:
# Download demo data files into lakehouse if not exist
    remote_url = "https://synapseaisolutionsa.z13.web.core.windows.net/data/bankcustomerchurn"
    file_list = [DATA_FILE]
    download_path = f"{DATA_ROOT}/{DATA_FOLDER}/raw"

    if not os.path.exists("/lakehouse/default"):
        raise FileNotFoundError(
            "Default lakehouse not found, please add a lakehouse and restart the session."
        )
    os.makedirs(download_path, exist_ok=True)
    for fname in file_list:
        if not os.path.exists(f"{download_path}/{fname}"):
            r = requests.get(f"{remote_url}/{fname}", timeout=30)
            with open(f"{download_path}/{fname}", "wb") as f:
                f.write(r.content)
    print("Downloaded demo data files into lakehouse.")

Vous utilisez les données que vous venez d’ingérer :