Oktatóanyag 1. rész: Adatok betöltése Egy Microsoft Fabric lakehouse-ba az Apache Spark használatával

Ebben az oktatóanyagban delta lake formátumban fog adatokat beszedni a Fabric lakehouse-ba. Néhány fontos fogalom, amit meg kell érteni:

  • Lakehouse – A lakehouse olyan fájlok/mappák/táblák gyűjteménye, amelyek egy adatbázist képviselnek a Spark motor és az SQL-motor által a big data-feldolgozáshoz használt data lake-en keresztül, és továbbfejlesztett képességeket tartalmaznak az ACID-tranzakciókhoz a nyílt forráskódú Delta formátumú táblák használatakor.

  • A Delta Lake – Delta Lake egy nyílt forráskódú tárolási réteg, amely ACID-tranzakciókat, méretezhető metaadatok kezelését, valamint kötegelt és streamelt adatfeldolgozást biztosít az Apache Sparkba. A Delta Lake-tábla olyan adattábla-formátum, amely kibővíti a Parquet-adatfájlokat egy fájlalapú tranzakciónaplóval az ACID-tranzakciókhoz és a skálázható metaadatok kezeléséhez.

  • Az Azure Open Datasets olyan válogatott nyilvános adatkészletek, amelyekkel forgatókönyvspecifikus funkciókat adhat hozzá a gépi tanulási megoldásokhoz a pontosabb modellek érdekében. A nyílt adathalmazok a Felhőben találhatók a Microsoft Azure Storage-ban, és különböző módszerekkel érhetők el, például Apache Spark, REST API, Data Factory és egyéb eszközök.

Ebben az oktatóanyagban az Apache Sparkot használja a következőkre:

  • Adatok olvasása az Azure Open Datasets-tárolókból.
  • Adatok írása Fabric lakehouse delta táblába.

Előfeltételek

  • Microsoft Fabric-előfizetés lekérése. Vagy regisztráljon egy ingyenes Microsoft Fabric-próbaverzióra.

  • Jelentkezzen be a Microsoft Fabricbe.

  • A kezdőlap bal oldalán található élménykapcsolóval válthat a Synapse Adattudomány felületre.

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

  • Adjon hozzá egy tóházat ehhez a jegyzetfüzethez. Adatokat fog letölteni egy nyilvános blobból, majd az adatokat a lakehouse-ban fogja tárolni.

Követés a jegyzetfüzetben

Az 1-ingest-data.ipynb az oktatóanyagot kísérő jegyzetfüzet.

Az oktatóanyaghoz mellékelt jegyzetfüzet megnyitásához kövesse a Rendszer előkészítése adatelemzési oktatóanyagokhoz című témakör utasításait, és importálja a jegyzetfüzetet a munkaterületre.

Ha inkább erről a lapról másolja és illessze be a kódot, létrehozhat egy új jegyzetfüzetet.

A kód futtatása előtt mindenképpen csatoljon egy lakehouse-t a jegyzetfüzethez .

Banki forgalom adatai

Az adathalmaz 10 000 ügyfél adatváltozási állapotát tartalmazza. Olyan attribútumokat is tartalmaz, amelyek hatással lehetnek az adatváltozásra, például:

  • Kreditpontszám
  • Földrajzi hely (Németország, Franciaország, Spanyolország)
  • Nem (férfi, nő)
  • Kor
  • Bérleti idő (a bank ügyfeleként töltött évek)
  • Számla egyenlege
  • Becsült fizetés
  • Az ügyfél által a bankon keresztül vásárolt termékek száma
  • Hitelkártya állapota (hogy az ügyfél rendelkezik-e hitelkártyával vagy sem)
  • Aktív tag állapota (akár egy aktív bank ügyfele, akár nem)

Az adatkészlet olyan oszlopokat is tartalmaz, mint a sorszám, az ügyfélazonosító és az ügyfél vezetékneve, amelyek nem befolyásolhatják az ügyfél bankból való kilépésre vonatkozó döntését.

Az ügyfél forgalmát meghatározó esemény az ügyfél bankszámlájának bezárása. Az adathalmaz oszlopa exited az ügyfél lemondására utal. Ezekről az attribútumokról nem áll rendelkezésre sok kontextus, ezért anélkül kell továbblépnie, hogy háttérinformációt kellene adnia az adathalmazról. A cél annak megértése, hogy ezek az attribútumok hogyan járulnak hozzá az exited állapothoz.

Példasorok az adathalmazból:

"CustomerID" "Vezetéknév" "CreditScore" "Földrajzi hely" "Nem" "Életkor" "Bérleti idő" "Egyenleg" "NumOfProducts" "HasCrCard" "IsActiveMember" "Becsült értékesítés" "Kilépett"
15634602 Hargrave 619 Franciaország 42 2 0,00 0 0 0 101348.88 0
15647311 Hill 608 Spanyolország 41 0 83807.86 0 0 0 112542.58 0

Adathalmaz letöltése és feltöltése a lakehouse-ba

Tipp.

A következő paraméterek definiálásával ezt a jegyzetfüzetet egyszerűen használhatja különböző adatkészletekkel.

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

Ez a kód letölti az adathalmaz nyilvánosan elérhető verzióját, majd egy Fabric lakehouse-ban tárolja.

Fontos

A futtatás előtt mindenképpen adjon hozzá egy lakehouse-t a jegyzetfüzethez. Ennek elmulasztása hibát fog eredményezni.

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

Az imént betöltött adatokat fogja használni: