Partie 1 du tutoriel : Ingérer des données dans un lac 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 - A lakehouse est une collection de fichiers/dossiers/tables qui représentent une base de données sur un lac de données utilisé par le moteur Spark et le moteur SQL pour le traitement big data et qui inclut des fonctionnalités améliorées pour les transactions ACID lors de l’utilisation des tables mises en forme Delta open source.
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 de données par lots et de diffusion en continu vers Apache Spark. Une table Delta Lake est un format de table de données qui étend les fichiers de données Parquet avec un journal des transactions sous forme de fichiers pour les transactions ACID et une gestion évolutive des métadonné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 aux solutions d'apprentissage automatique afin de créer des modèles plus précis. Les jeux de données ouverts se trouvent dans le cloud sur Le 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 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.
- 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.
Suivre dans le notebook
1-ingest-data.ipynb est le notebook qui accompagne ce tutoriel.
Pour ouvrir le bloc-notes associé pour ce didacticiel, suivez les instructions de Préparer votre système pour les didacticiels de science des données pour importer le bloc-notes dans votre espace de travail.
Si vous préférez copier et coller le code à partir de cette page, vous pouvez créer un bloc-notes.
Assurez-vous d’attacher un lakehouse au notebook avant de commencer à exécuter du code.
Données de perte de clients 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 la perte de clientèle, par exemple :
- Score de crédit
- Emplacement géographique (Allemagne, France, Espagne)
- Sexe (mâle, femelle)
- Âge
- Mandat (années de client de la banque)
- Solde du compte
- Salaire estimé
- Nombre de produits qu’un client a achetés par le biais de la banque
- État de la carte de crédit (qu’un client dispose d’une carte de crédit ou non)
- État du membre actif (qu’il s’agisse du client d’une banque active 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
dans le 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 » | « 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
En définissant facilement les paramètres suivants, vous pouvez 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 publique 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. 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.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.")
Contenu connexe
Vous allez utiliser les données que vous venez d’ingérer :