Condividi tramite


Parte 1 dell'esercitazione: Usare Apache Spark per inserire dati in un lakehouse di Microsoft Fabric

Questa esercitazione inserisce i dati nei lakehouse di Fabric nel formato Delta Lake. Qui vengono definiti alcuni termini importanti:

  • Lakehouse : una raccolta di file, cartelle e/o tabelle che rappresentano un database su un data lake. Il motore Spark e il motore SQL usano risorse lakehouse per l'elaborazione di Big Data. Quando si usano tabelle in formato Delta open source, l'elaborazione include funzionalità avanzate per le transazioni ACID.

  • Delta Lake - Delta Lake è un livello di archiviazione open source che offre transazioni ACID, gestione scalabile dei metadati e elaborazione batch e streaming dei dati in Apache Spark. Come formato di tabella dati, Delta Lake estende i file di dati Parquet aggiungendo un log delle transazioni basato su file per supportare le transazioni ACID e una gestione scalabile dei metadati.

  • I set di dati aperti di Azure sono set di dati pubblici curati che aggiungono funzionalità specifiche dello scenario alle soluzioni di Machine Learning. Ciò porta a modelli più accurati. I set di dati aperti sono risorse cloud che risiedono in Archiviazione di Microsoft Azure. Apache Spark, API REST, Data factory e altri strumenti possono accedere ai set di dati aperti.

In questa esercitazione si usa Apache Spark per:

  • Leggere i dati dai contenitori di set di dati aperti di Azure.
  • Scrivere dati in una tabella delta di un lakehouse di Fabric.

Prerequisiti

  • Abbonati a Microsoft Fabric. In alternativa, iscriviti a una versione di prova gratuita di Microsoft Fabric.

  • Accedere a Microsoft Fabric.

  • Usa il selettore di esperienza nell'angolo inferiore sinistro della tua home page per passare a Fabric.

    Screenshot del menu selezione esperienza, che mostra dove selezionare Data Science.

  • Aggiungi una lakehouse a questo notebook. In questa esercitazione si scaricano prima i dati da un BLOB pubblico. I dati vengono quindi archiviati in quella risorsa lakehouse.

Seguire la procedura in un notebook

Il notebook 1-ingest-data.ipynb accompagna questo tutorial.

Dati di varianza della banca

Il dataset contiene informazioni sullo stato di abbandono dei clienti per 10.000 clienti. Include anche attributi che potrebbero influenzare la varianza, ad esempio:

  • Punteggio di credito
  • Posizione geografica (Germania, Francia, Spagna)
  • Genere (maschile, femminile)
  • Età
  • Tenure (il numero di anni in cui il cliente era un cliente della banca)
  • Saldo del conto
  • Stipendio stimato
  • Numero di prodotti acquistati da un cliente tramite la banca
  • Stato della carta di credito (se un cliente ha o meno una carta di credito)
  • Stato membro attivo (indipendentemente dal fatto che il cliente abbia o meno uno stato attivo del cliente bancario)

Il set di dati include anche queste colonne:

  • numero di riga
  • ID cliente
  • cognome del cliente

Queste colonne non devono avere alcuna influenza sulla decisione di un cliente di lasciare la banca.

La chiusura di un conto bancario da parte di un cliente definisce l'abbandono del cliente. La colonna del set di dati exited si riferisce all'abbandono del cliente. È disponibile un piccolo contesto su questi attributi, quindi è necessario procedere senza informazioni di base sul set di dati. L'obiettivo è comprendere come questi attributi contribuiscono allo exited stato.

Righe del set di dati di esempio:

"CustomerID" "Cognome" "Punteggio di credito" "Posizione geografica" "Genere" "Età" Tenura "Saldo" "NumDiProdotti" "HaCartaCred" "MembroAtt" "StipendioStim" "Uscita"
15634602 Hargrave 619 Francia Femmina 42 2 0,00 1 1 1 101.348,88 1
15647311 Collina 608 Spagna Femmina 41 1 83.807,86 1 0 1 112.542,58 0

Scaricare il set di dati e caricarlo nel lakehouse

Suggerimento

Quando si definiscono i parametri seguenti, è possibile usare facilmente questo notebook con set di dati diversi:

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

Il frammento di codice seguente scarica una versione disponibile pubblicamente del set di dati e quindi archivia tale risorsa in un lakehouse di Fabric:

Importante

Assicurati di aggiungere un lakehouse al notebook prima di eseguirlo. In caso contrario, si verifica un errore.

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

Usi i dati appena inseriti in: