Megosztás a következőn keresztül:


Oktatóanyag 1. rész: Az Apache Spark használata adatok Microsoft Fabric-tóházba való betöltéséhez

Ez az oktatóanyag Delta Lake formátumban tölti be az adatokat a Fabric lakehouse-okba. Itt definiálunk néhány fontos kifejezést:

  • Lakehouse – A lakehouse fájlok, mappák és /vagy táblák gyűjteménye, amelyek egy adatbázist jelölnek egy adattó felett. A Spark-motor és az SQL-motor lakehouse-erőforrásokat használ a big data-feldolgozáshoz. Nyílt forráskódú Delta-formátumú táblák használata esetén ez a feldolgozás továbbfejlesztett ACID-tranzakciós képességeket is magában foglal.

  • 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. Adattábla-formátumként a Delta Lake 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, amelyek forgatókönyvspecifikus funkciókat adnak hozzá a gépi tanulási megoldásokhoz. Ez pontosabb modellekhez vezet. A nyílt adathalmazok olyan felhőalapú erőforrások, amelyek a Microsoft Azure Storage-ban találhatók. Az Apache Spark, a REST API, a Data Factory és más eszközök hozzáférhetnek az Open Datasetshez.

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 a Fabric Lakehouse delta táblába.

Előfeltételek

  • Adjon hozzá egy tóházat ehhez a jegyzetfüzethez. Ebben az oktatóanyagban először letölti az adatokat egy nyilvános blobból. Ezután az adatok ebben a lakehouse-erőforrásban lesznek tárolva.

Kövesd nyomon egy jegyzetfüzetben

Az 1-ingest-data.ipynb notebook ezt az oktatóanyagot kíséri.

Banki forgalom adatai

Az adatkészlet 10 000 ügyfél lemorzsolódási állapotának információit tartalmazza. Olyan attribútumokat is tartalmaz, amelyek befolyásolhatják a lemorzsolódást – például:

  • Kreditpontszám
  • Földrajzi hely (Németország, Franciaország, Spanyolország)
  • Nem (férfi, nő)
  • Kor
  • Bérleti idő (azon évek száma, amikor az ügyfél ügyfél volt az adott bankban)
  • 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 (függetlenül attól, hogy egy ügyfél rendelkezik-e hitelkártyával)
  • Aktív tag állapota (függetlenül attól, hogy az ügyfél rendelkezik-e aktív banki ügyfélállapotsal)

Az adathalmaz az alábbi oszlopokat is tartalmazza:

  • sorszám
  • ügyfélazonosító
  • ügyfél vezetékneve

Ezek az oszlopok nem befolyásolhatják az ügyfél bankból való kilépésre vonatkozó döntését.

Az ügyfél bankszámlájának bezárása határozza meg az ügyfél forgalmát. Az adathalmaz exited oszlop az ügyfél lemondására utal. Ezekről az attribútumokról kevés kontextus érhető el, ezért az adathalmaz háttérinformációi nélkül kell folytatnia a műveletet. Célunk annak megértése, hogy ezek az attribútumok hogyan járulnak hozzá az exited állapothoz.

Mintasorok adatkészletből:

"CustomerID" "Vezetéknév" Hitelpontszám "Földrajzi hely" "Nem" Életkor "Bérleti idő" "Egyenleg" TermékekSzáma "HasCrCard" Aktív tag-e Becsült fizetés "Kilépett"
15634602 Hargrave 619 Franciaország 42 2 0.00 1 1 1 101348.88 1
15647311 Domb 608 Spanyolország 41 1 83807.86 1 0 1 112542.58 0

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

Borravaló

A következő paraméterek megadásakor egyszerűen használhatja ezt a jegyzetfüzetet 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

Az alábbi kódrészlet letölti az adathalmaz nyilvánosan elérhető verzióját, majd egy Fabric lakehouse-ban tárolja az erőforrást:

Fontos

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

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

Ön az imént betöltött adatokat használhatja: