Självstudie del 1: Mata in data i ett Microsoft Fabric Lakehouse med Apache Spark
I den här handledningen kommer du att importera data till fabric lakehouses i delta lake-format. Några viktiga termer att förstå:
Lakehouse – En lakehouse är en samling filer/mappar/tabeller som representerar en databas över en datasjö som används av Spark-motorn och SQL-motorn för bearbetning av stordata och som innehåller förbättrade funktioner för ACID-transaktioner när du använder deltaformaterade tabeller med öppen källkod.
Delta Lake – Delta Lake är ett lagringslager med öppen källkod som ger ACID-transaktioner, skalbar metadatahantering och bearbetning av batch- och strömmande data till Apache Spark. En Delta Lake-tabell är ett datatabellformat som utökar Parquet-datafiler med en filbaserad transaktionslogg för ACID-transaktioner och skalbar metadatahantering.
Azure Open Datasets är kurerade offentliga datauppsättningar som du kan använda för att lägga till scenariospecifika funktioner i maskininlärningslösningar för mer exakta modeller. Öppna datauppsättningar finns i molnet på Microsoft Azure Storage och kan nås med olika metoder, till exempel Apache Spark, REST API, Data Factory och andra verktyg.
I den här självstudien använder du Apache Spark för att:
- Läsa data från Azure Open Datasets-containrar.
- Skriv data till en Fabric lakehouse delta-tabell.
Förutsättningar
Skaffa en Microsoft Fabric-prenumeration. Eller registrera dig för en kostnadsfri Microsoft Fabric-utvärderingsversion.
Logga in på Microsoft Fabric.
Använd upplevelseväxlaren längst ned till vänster på startsidan för att växla till Fabric.
- Lägg till en lakehouse- i den här notebook-filen. Du kommer att ladda ned data från en offentlig blob och sedan lagra datan i lakehouse.
Följ med i notebooken
1-ingest-data.ipynb är anteckningsboken som medföljer den här handledningen.
Om du vill öppna den medföljande notebook-filen för den här självstudien följer du anvisningarna i Förbereda systemet för självstudier för datavetenskap importera anteckningsboken till din arbetsyta.
Om du hellre kopierar och klistrar in koden från den här sidan kan du skapa en ny notebook-fil.
Se till att bifoga ett lakehouse till notebook- innan du börjar köra kod.
Bankomsättningsdata
Datamängden innehåller avhoppsstatus för 10 000 kunder. Den innehåller även attribut som kan påverka omsättning, till exempel:
- Kreditpoäng
- Geografiskt läge (Tyskland, Frankrike, Spanien)
- Kön (man, kvinna)
- Ålder
- Kundtid (år som bankens kund)
- Kontosaldo
- Beräknad lön
- Antal produkter som en kund har köpt via banken
- Kreditkortsstatus (om en kund har ett kreditkort eller inte)
- Aktiv medlemsstatus (oavsett om en aktiv banks kund eller inte)
Datamängden innehåller även kolumner som radnummer, kund-ID och kundens efternamn som inte ska påverka kundens beslut att lämna banken.
Händelsen som definierar kundens bortfall är stängningen av kundens bankkonto. Kolumnen exited
i datamängden avser kundbortfall. Det finns inte mycket sammanhang om dessa attribut, så du måste fortsätta utan bakgrundsinformation om datauppsättningen. Syftet är att förstå hur dessa attribut bidrar till exited
status.
Exempelrader från datauppsättningen:
"CustomerID" | "Efternamn" | Kreditvärdighet | Geografi | Genus | "Ålder" | "Besittningsrätt" | "Saldo" | AntalProdukter | "HasCrCard" | ÄrAktivMedlem | Beräknad lön | "Avslutad" |
---|---|---|---|---|---|---|---|---|---|---|---|---|
15634602 | Hargrave | 619 | Frankrike | Kvinnlig | 42 | 2 | 0.00 | 1 | 1 | 1 | 101348.88 | 1 |
15647311 | Kulle | 608 | Spanien | Kvinnlig | 41 | 1 | 83807.86 | 1 | 0 | 1 | 112542.58 | 0 |
Ladda ner datauppsättningen och ladda upp till lakehouse
Tips
Genom att definiera följande parametrar kan du enkelt använda den här notebook-filen med olika datauppsättningar.
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
Den här koden laddar ned en offentligt tillgänglig version av datauppsättningen och lagrar den sedan i ett datalager.
Viktig
Se till att du lägger till ett lakehouse- i anteckningsboken innan du kör anteckningsboken. Om du inte gör det uppstår ett fel.
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.")
Relaterat innehåll
Du använder de data som du just har matat in: