Partager via


Partie 1 du tutoriel : ingérer des données dans un lakehouse Microsoft Fabric à l’aide d’Apache Spark

Dans ce tutoriel, vous allez ingérer des données dans des lakehouses Fabric au format delta lake. Certains termes importants à comprendre :

  • Lakehouse : un lakehouse est une collection de fichiers/dossiers/tables qui représente une base de données sur un lac de données utilisé par le moteur Spark et le moteur SQL pour le traitement du Big Data, et qui inclut des fonctionnalités améliorées pour les transactions ACID lors de l’utilisation des tables au format Delta open source.

  • Delta Lake : Delta Lake est une couche de stockage open source qui apporte les transactions ACID, la gestion évolutive des métadonnées et le traitement des données par lots et en diffusion en continu à Apache Spark. Delta Lake est un format de table de données qui étend les fichiers de données Parquet avec un journal des transactions basé sur des fichiers pour les transactions ACID et le traitement évolutif des métadonnées.

  • Les jeux de données Azure Open Datasets sont des jeux de données publics organisés que vous pouvez utiliser pour ajouter des fonctionnalités spécifiques à des scénarios à des solutions de Machine Learning afin d’obtenir des modèles plus précis. Les Open Datasets (jeux de données ouverts) se trouvent dans le cloud sur Stockage Microsoft Azure et sont accessibles par différentes méthodes, notamment Apache Spark, l’API REST, la Fabrique de données et d’autres outils.

Dans ce tutoriel, vous utilisez Apache Spark pour :

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

Prérequis

  • Ajouter un lakehouse à ce notebook. Vous allez télécharger des données à partir d’un objet blob public, puis stocker les données dans le lakehouse.

Suivez dans le notebook

1-ingest-data.ipynb est le notebook qui accompagne ce tutoriel.

Pour ouvrir le notebook accompagnant ce tutoriel, suivez les instructions fournies dans Préparer votre système pour le tutoriel sur la science des données afin d’importer les notebooks dans votre espace de travail.

Si vous préférez copier et coller le code à partir de cette page, vous pouvez créer un notebook.

Assurez-vous d'attacher un lakehouse au notebook avant de commencer à exécuter du code.

Données d’attrition bancaires

Le jeu de données contient l’état d’attrition de 10 000 clients. Il inclut également des attributs qui peuvent avoir un impact sur l’attrition, par exemple :

  • Le score de crédit
  • L’emplacement géographique (Allemagne, France, Espagne)
  • Le sexe (homme, femme)
  • Âge
  • L’ancienneté (nombre d’années en tant que client de la banque)
  • Solde du compte
  • Salaire estimé
  • Nombre de produits achetés par un client par le biais de la banque
  • État de la carte de crédit (si le client possède une carte de crédit ou non)
  • État du membre actif (client actif de la banque ou non)

Le jeu de données inclut également des colonnes telles que le numéro de ligne, l’ID client et le nom du client qui n’ont aucun impact sur la décision du client de quitter la banque.

L’événement qui définit l’attrition du client est la fermeture du compte bancaire du client. La colonne exited du jeu de données fait référence à l’abandon du client. Il n’y a pas beaucoup de contexte disponible sur ces attributs. Vous devez donc continuer sans avoir d’informations générales sur le jeu de données. L’objectif est de comprendre comment ces attributs contribuent à l’état exited.

Exemples de lignes du jeu de données :

« CustomerID » « Surname » « CreditScore » « Géographie » « Gender » "Age" « Tenure » « Balance » « NumOfProducts » « HasCrCard » « IsActiveMember » « EstimatedSalary » « Exited »
15634602 Hargrave 619 France Femme 42 2 0.00 1 1 1 101348.88 1
15647311 Hill 608 Espagne Femme 41 1 83807.86 1 0 1 112542.58 0

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

Conseil

En définissant 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

Ce code télécharge une version disponible publiquement du jeu de données, puis la stocke dans un lakehouse Fabric.

Important

Assurez-vous d’ajouter un lakehouse au notebook avant de l’exécuter. Dans le cas contraire, vous obtiendrez une erreur.

import os, requests
if not IS_CUSTOM_DATA:
# Download demo data files into lakehouse if not exist
    remote_url = "https://synapseaisolutionsa.blob.core.windows.net/public/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 allez utiliser les données que vous venez d’ingérer :