Condividi tramite


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

Questa esercitazione inserisce i dati nei Fabric lakehouses in 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.

  • 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 Microsoft Archiviazione di 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:

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

Prerequisiti

  • Ottenere una sottoscrizione Microsoft Fabric. In alternativa, iscriversi per ottenere una versione di valutazione gratuita Microsoft Fabric.

  • Accedere a Microsoft Fabric.

  • Passare a Fabric usando il selettore di esperienza nell'angolo in basso a sinistra della home page.

    Screenshot che mostra la selezione di Fabric nel menu di commutazione dell'esperienza.

  • 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.

Annotazioni

Prima di iniziare, assicurarsi di completare i passaggi di preparazione del sistema : creare un'area di lavoro, creare un lakehouse e collegarlo al notebook. I dati di esempio usati in questa esercitazione provengono da un contenitore pubblico set di dati aperti di Azure ed è accessibile a livello di codice nel codice del notebook.

Seguire la procedura in un quaderno

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

Suggerimento

Questa esercitazione legge i dati di esempio da un contenitore set di dati aperti di Azure. Se si verifica un errore di accesso durante il caricamento dei dati, è possibile scaricare manualmente il file churn.csv dal fabric-samples GitHub repository e caricarlo nel lakehouse.

Dati di abbandono clienti 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" MembroAttivo StipendioStimato Uscito
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 una Fabric lakehouse:

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: