Freigeben über


Lernprogramm Teil 1: Verwenden von Apache Spark zum Aufnehmen von Daten in ein Microsoft Fabric Lakehouse

In diesem Tutorial werden Daten im Delta Lake-Format in Fabric-Lakehouses erfasst. Hier definieren wir einige wichtige Begriffe:

  • Lakehouse - Ein Lakehouse ist eine Sammlung von Dateien, Ordnern und / oder Tabellen, die eine Datenbank über einen Data Lake darstellen. Das Spark-Modul und das SQL-Modul verwenden Lakehouse-Ressourcen für die Big Data-Verarbeitung. Wenn Sie Open-Source-Delta-formatierte Tabellen verwenden, enthält diese Verarbeitung erweiterte ACID-Transaktionsfunktionen.

  • Delta Lake: Delta Lake ist eine Open-Source-Speicherebene, die ACID-Transaktionen, skalierbare Metadatenverwaltung sowie Batch- und Streamingdatenverarbeitung in Apache Spark ermöglicht. Als Datentabellenformat erweitert Delta Lake Parquet-Datendateien mit einem dateibasierten Transaktionsprotokoll für ACID-Transaktionen und einer skalierbaren Metadatenverwaltung.

  • Azure Open Datasets sind kuratierte öffentliche Datasets, die szenariospezifische Features zu Machine Learning-Lösungen hinzufügen. Dies führt zu genaueren Modellen. Offene Datasets sind Cloudressourcen, die sich in Microsoft Azure Storage befinden. Apache Spark, REST API, Data Factory und andere Tools können auf Open Datasets zugreifen.

In diesem Lernprogramm verwenden Sie den Apache Spark für:

  • Lesen von Daten aus Azure Open Datasets-Containern.
  • Schreiben von Daten in die Delta-Tabelle eines Fabric-Lakehouse

Voraussetzungen

  • Fügen Sie diesem Notizbuch ein Seehaus hinzu. In diesem Tutorial laden Sie Daten aus einem öffentlichen Blob herunter und speichern die Daten dann in der Lakehouse-Ressource.

Ein Notebook für das Tutorial

Das 1-ingest-data.ipynb-Notizbuch begleitet dieses Lernprogramm.

Kundenschwunddaten der Bank

Das Dataset enthält Churn-Statusinformationen für 10.000 Kunden. Es enthält auch Attribute, die die Kundenfluktuation beeinflussen könnten, z. B.:

  • Kreditwürdigkeit
  • Geografischer Standort (Deutschland, Frankreich, Spanien)
  • Geschlecht (männlich, weiblich)
  • Alter
  • Tenure (die Anzahl der Jahre, in denen der Kunde ein Kunde bei dieser Bank war)
  • Kontostand
  • Geschätztes Gehalt
  • Anzahl der Produkte, die ein Kunde über die Bank erworben hat
  • Kreditkartenstatus (unabhängig davon, ob ein Kunde über eine Kreditkarte verfügt)
  • Status des aktiven Mitglieds (unabhängig davon, ob der Kunde über einen aktiven Bankkundenstatus verfügt)

Das Dataset enthält auch die folgenden Spalten:

  • Zeilennummer
  • Kunden-ID
  • Nachname des Kunden

Diese Spalten sollten keinen Einfluss auf die Entscheidung eines Kunden haben, die Bank zu verlassen.

Die Schließung eines Kundenbankkontos definiert die Abwanderung dieses Kunden. Die Spalte exited des Datasets bezieht sich auf die Kundenabwanderung. Es ist wenig Kontext zu diesen Attributen verfügbar, sodass Sie ohne Hintergrundinformationen zum Dataset fortfahren müssen. Unser Ziel ist es zu verstehen, wie diese Attribute zum exited Status beitragen.

Beispiel-Datasetzeilen:

"CustomerID" "Nachname" „CreditScore“ "Geographie" "Geschlecht" Alter „Tenure“ Gleichgewicht AnzahlDerProdukte „HasCrCard“ „IsActiveMember“ Geschätztes Gehalt „Exited“
15634602 Hargrave 619 Frankreich Weiblich 42 2 0,00 1 1 1 101348.88 1
15647311 Hügel 608 Spanien Weiblich 41 1 83807.86 1 0 1 112542.58 0

Dataset herunterladen und in das Lakehouse hochladen

Tipp

Wenn Sie die folgenden Parameter definieren, können Sie dieses Notizbuch ganz einfach mit verschiedenen Datasets verwenden:

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

Der folgende Codeausschnitt lädt eine öffentlich verfügbare Version des Datasets herunter und speichert diese Ressource dann in einem Fabric Lakehouse:

Wichtig

Stellen Sie sicher, dass Sie dem Notebook vor der Ausführung ein Lakehouse hinzufügen. Wenn dies nicht getan wird, führt dies zu einem Fehler.

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.")

Sie verwenden die Daten, die Sie gerade aufgenommen haben: