Caricamento dei Dati da un File in un DataFrame
Scorri per mostrare il menu
L'oggetto spark.read è il punto di ingresso per la lettura di dati esterni in un DataFrame Spark. Supporta vari formati di file, inclusi CSV, JSON, Parquet e Delta, e consente di definire come Spark deve interpretare i file.
Nella Sezione 2, è stato caricato un file CSV nell'ambiente Databricks. Ora imparerai come "prelevare" quel file dallo storage e portarlo nella memoria del cluster come DataFrame utilizzando Python. Questo è il primo passo in quasi tutte le pipeline di data engineering.
Sintassi di spark.read
Per caricare un file, si utilizza una specifica catena di comandi. La struttura di base è la seguente:
df = spark.read.format("csv").option("header", "true").load("path/to/file")
- format: indica a Spark il tipo di file (csv, json, parquet);
- option("header", "true"): indica a Spark di utilizzare la prima riga del file come nomi delle colonne;
- load: posizione specifica del file all'interno di Databricks.
Inferenza dello schema
Per impostazione predefinita, Spark presume che ogni colonna in un file CSV sia una stringa (testo). Per rendere i dati più utili, si aggiunge un'altra opzione: .option("inferSchema", "true"). Quando questa opzione è abilitata, Spark esamina rapidamente i dati e identifica automaticamente quali colonne sono interi, decimali o booleani. Questo evita il lavoro manuale di definire i tipi di dati.
Individuazione del percorso del file
Per leggere un file, è necessario conoscerne il percorso. Nella scheda Catalogo o Workspace, è possibile individuare il file caricato, cliccare sui tre puntini (ellissi) accanto ad esso e selezionare "Copia percorso". Nelle versioni moderne di Databricks, se il file è stato caricato tramite l'interfaccia Data Ingestion come descritto nel Capitolo 2.6, i dati sono già salvati come tabella, che possiamo leggere utilizzando:
df = spark.read.table("main.default.sample_sales_records")
Tuttavia, se si sta leggendo il file grezzo direttamente da un Volume, si deve utilizzare il percorso del file:
df = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/Volumes/main/default/my_volume/sales_data.csv")
Verifica del caricamento
Dopo aver eseguito il comando di caricamento, è buona pratica verificare i dati. È consigliabile seguire immediatamente il comando di lettura con: display(df)
Questo conferma che i dati sono stati caricati correttamente nella memoria del cluster, che le intestazioni sono nella posizione corretta e che i tipi di dato risultano accurati. In questa fase, i dati risiedono in un oggetto temporaneo chiamato df e si è pronti per iniziare a trasformarli.
1. Perché è consigliabile utilizzare l'impostazione .option("inferSchema", "true") durante la lettura di un file CSV?
2. Quale comando viene utilizzato per importare una tabella esistente dal Catalogo in un DataFrame Python?
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione