Delen via


Zelfstudie deel 1: Apache Spark gebruiken om gegevens op te nemen in een Microsoft Fabric Lakehouse

In deze handleiding worden gegevens opgenomen in Fabric Lakehouses in Delta Lake-indeling. We definiƫren hier enkele belangrijke termen:

  • Lakehouse - Een lakehouse is een verzameling bestanden, mappen en/of tabellen die een database vertegenwoordigen boven een data lake. De Spark-engine en DE SQL-engine maken gebruik van lakehouse-resources voor verwerking van big data. Wanneer u opensource-tabellen met Delta-indeling gebruikt, bevat deze verwerking verbeterde ACID-transactiemogelijkheden.

  • Delta Lake - Delta Lake is een opensource-opslaglaag die ACID-transacties, schaalbaar metagegevensbeheer en batch- en streaminggegevensverwerking naar Apache Spark brengt. Als gegevenstabelindeling breidt Delta Lake Parquet-gegevensbestanden uit met een transactielogboek op basis van bestanden voor ACID-transacties en schaalbaar metagegevensbeheer.

  • Azure Open Datasets zijn samengestelde openbare gegevenssets die scenariospecifieke functies toevoegen aan machine learning-oplossingen. Dit leidt tot nauwkeurigere modellen. Open Datasets zijn cloudresources die zich in Microsoft Azure Storage bevinden. Apache Spark, REST API, Data Factory en andere hulpprogramma's hebben toegang tot Open Datasets.

In deze zelfstudie gebruikt u Apache Spark voor het volgende:

  • Gegevens lezen uit Azure Open Datasets-containers.
  • Schrijf gegevens naar een Fabric Lakehouse Delta-tabel.

Voorwaarden

  • Voeg een lakehouse toe aan dit notitieblok. In deze zelfstudie downloadt u eerst gegevens uit een openbare blob. Vervolgens worden de gegevens opgeslagen in die Lakehouse-resource.

Volg mee in een notitieboekje

De 1-ingest-data.ipynb notebook begeleidt deze handleiding.

Gegevens over bankverloop

De gegevensset bevat informatie over de verloopstatus voor 10.000 klanten. Het bevat ook kenmerken die invloed kunnen hebben op het verloop, bijvoorbeeld:

  • Kredietscore
  • Geografische locatie (Duitsland, Frankrijk, Spanje)
  • Geslacht (mannelijk, vrouwelijk)
  • Leeftijd
  • Tenure (het aantal jaren dat de klant een klant was bij die bank)
  • Saldo van rekening
  • Geschat salaris
  • Aantal producten dat een klant heeft gekocht via de bank
  • Creditcardstatus (of een klant al dan niet een creditcard heeft)
  • Status van actief lid (of de klant al dan niet de status van een actieve bankklant heeft)

De gegevensset bevat ook de volgende kolommen:

  • rijnummer
  • klant-id
  • achternaam van klant

Deze kolommen mogen geen invloed hebben op de beslissing van een klant om de bank te verlaten.

De sluiting van een bankrekening van een klant definieert het verloop van die klant. De kolom exited in de dataset verwijst naar klantverlating. Er is weinig context over deze kenmerken beschikbaar, dus u moet doorgaan zonder achtergrondinformatie over de gegevensset. Ons doel is om te begrijpen hoe deze kenmerken bijdragen aan de exited status.

Voorbeeld van gegevenssetrijen:

"CustomerID" "Achternaam" Kredietscore "Geografie" "Geslacht" "Leeftijd" Vaste aanstelling "Saldo" AantalProducten "HasCrCard" IsActiefLid Geschat Salaris Verlaten
15634602 Hargrave 619 Frankrijk Vrouwelijk 42 2 0,00 1 1 1 101348.88 1
15647311 Heuvel 608 Spanje Vrouwelijk 41 1 83807.86 1 0 1 112542.58 0

Gegevensset downloaden en uploaden naar Lakehouse

Aanbeveling

Wanneer u de volgende parameters definieert, kunt u dit notebook eenvoudig gebruiken met verschillende gegevenssets:

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

Met het volgende codefragment wordt een openbaar beschikbare versie van de gegevensset gedownload en wordt die resource vervolgens opgeslagen in een Fabric Lakehouse:

Belangrijk

Zorg ervoor dat u een lakehouse toevoegt aan het notebook voordat u het uitvoert. Als u dit niet doet, treedt er een fout op.

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

U gebruikt de gegevens die u zojuist hebt opgenomen: