Opplæring del 1: Innta data i et Microsoft Fabric lakehouse ved hjelp av Apache Spark

I denne opplæringen skal du innta data i fabric lakehouses i delta lake format. Noen viktige begreper å forstå:

  • Lakehouse – Et lakehouse er en samling filer/mapper/tabeller som representerer en database over en datainnsjø som brukes av Spark-motoren og SQL-motoren for behandling av store data, og som inkluderer forbedrede funksjoner for ACID-transaksjoner når du bruker deltaformaterte tabeller med åpen kildekode.

  • Delta Lake – Delta Lake er et lagringslag med åpen kildekode som bringer ACID-transaksjoner, skalerbar metadatabehandling og gruppe- og strømming av databehandling til Apache Spark. En Delta Lake-tabell er et datatabellformat som utvider Parquet-datafiler med en filbasert transaksjonslogg for ACID-transaksjoner og skalerbar metadatabehandling.

  • Azure Open Datasets er kuraterte offentlige datasett du kan bruke til å legge til scenariospesifikke funksjoner i maskinlæringsløsninger for mer nøyaktige modeller. Åpne datasett er i skyen på Microsoft Azure Storage og kan nås med ulike metoder, inkludert Apache Spark, REST API, Data factory og andre verktøy.

I denne opplæringen bruker du Apache Spark til å:

  • Les data fra Azure Open Datasets-beholdere.
  • Skriv inn data i et fabric lakehouse delta-bord.

Forutsetning

  • Få et Microsoft Fabric-abonnement. Eller registrer deg for en gratis prøveversjon av Microsoft Fabric.

  • Logg på Microsoft Fabric.

  • Bruk opplevelsesbryteren til venstre på hjemmesiden for å bytte til Synapse Data Science-opplevelsen.

    Screenshot of the experience switcher menu, showing where to select Data Science.

  • Legg til et lakehouse i denne notatblokken. Du laster ned data fra en offentlig blob, og deretter lagrer du dataene i lakehouse.

Følg med i notatblokken

1-inntak-data.ipynb er notatblokken som følger med denne opplæringen.

Hvis du vil åpne den medfølgende notatblokken for denne opplæringen, følger du instruksjonene i Klargjør systemet for opplæring for datavitenskap, for å importere notatblokken til arbeidsområdet.

Hvis du heller vil kopiere og lime inn koden fra denne siden, kan du opprette en ny notatblokk.

Pass på at du fester et lakehouse til notatblokken før du begynner å kjøre kode.

Bankfrafallsdata

Datasettet inneholder frafallsstatus for 10 000 kunder. Den inneholder også attributter som kan påvirke frafall, for eksempel:

  • Kredittpoengsum
  • Geografisk plassering (Tyskland, Frankrike, Spania)
  • Kjønn (mann, kvinne)
  • Alder
  • Tenure (år med å være bankens kunde)
  • Kontosaldo
  • Beregnet lønn
  • Antall produkter som en kunde har kjøpt gjennom banken
  • Kredittkortstatus (om en kunde har et kredittkort eller ikke)
  • Aktiv medlemsstatus (enten en aktiv banks kunde eller ikke)

Datasettet inneholder også kolonner som radnummer, kunde-ID og kundeetternavn som ikke skal ha noen innvirkning på kundens beslutning om å forlate banken.

Hendelsen som definerer kundens frafall, er avslutningen av kundens bankkonto. Kolonnen exited i datasettet refererer til kundens oppgivelse. Det er ikke mye kontekst tilgjengelig om disse attributtene, så du må fortsette uten å ha bakgrunnsinformasjon om datasettet. Målet er å forstå hvordan disse attributtene bidrar til statusen exited .

Eksempelrader fra datasettet:

"CustomerID" "Etternavn" "CreditScore" "Geografi" "Kjønn" "Alder" "Tenure" "Balanse" "NumOfProducts" "HasCrCard" "IsActiveMember" "EstimatedSalary" "Avsluttet"
15634602 Hargrave 619 Frankrike Kvinne 42 2 0,00 1 1 1 101348.88 1
15647311 Hill 608 Spania Kvinne 41 1 83807.86 1 0 1 112542.58 0

Last ned datasett og last opp til lakehouse

Tips

Ved å definere følgende parametere kan du enkelt bruke denne notatblokken med forskjellige datasett.

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

Denne koden laster ned en offentlig tilgjengelig versjon av datasettet og lagrer den deretter i et Fabric Lakehouse.

Viktig

Pass på at du legger til et lakehouse i notatblokken før du kjører den. Hvis du ikke gjør dette, vil det føre til en feil.

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

Du bruker dataene du nettopp inntok i: