Laste Data fra en Fil inn i en DataFrame
Sveip for å vise menyen
Objektet spark.read er inngangspunktet for å lese eksterne data inn i en Spark DataFrame. Det støtter ulike filformater, inkludert CSV, JSON, Parquet og Delta, og lar deg definere hvordan Spark skal tolke filene.
I seksjon 2 lastet du opp en CSV-fil til Databricks-miljøet. Nå skal du lære hvordan du "henter" denne filen fra lagringen og bringer den inn i klyngens minne som en DataFrame ved hjelp av Python. Dette er det første steget i nesten alle data engineering-pipelines.
spark.read-syntaks
For å laste inn en fil bruker vi en spesifikk kjede av kommandoer. Den grunnleggende strukturen ser slik ut:
df = spark.read.format("csv").option("header", "true").load("path/to/file")
- format: angir for Spark hvilken type fil (csv, json, parquet);
- option("header", "true"): angir for Spark at første rad i filen skal brukes som kolonnenavn;
- load: den spesifikke plasseringen av filen i Databricks.
Tolking av skjema
Som standard antar Spark at hver kolonne i en CSV er en streng (tekst). For å gjøre dataene mer nyttige, legger vi til et annet alternativ: .option("inferSchema", "true"). Når dette er aktivert, tar Spark en rask titt på dataene og identifiserer automatisk hvilke kolonner som er heltall, desimaltall eller boolske verdier. Dette sparer deg for manuelt arbeid med å definere datatyper selv.
Finne filbanen din
For å lese en fil, trenger du filbanen. I fanen Catalog eller Workspace kan du finne den opplastede filen din, klikke på de tre prikkene (ellipsis) ved siden av, og velge "Copy path". I moderne Databricks, hvis du lastet opp filen via Data Ingestion UI som vi gjorde i kapittel 2.6, er dataene allerede lagret som en tabell, som vi kan lese med:
df = spark.read.table("main.default.sample_sales_records")
Hvis du derimot leser råfilen direkte fra et Volume, bruker du filbanen:
df = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/Volumes/main/default/my_volume/sales_data.csv")
Verifisering av innlasting
Etter at innlastingskommandoen er kjørt, er det beste praksis å verifisere dataene. Du bør umiddelbart følge opp lesekommandoen med: display(df)
Dette bekrefter at dataene er lastet inn korrekt i klyngens minne, at kolonneoverskriftene er på riktig plass, og at datatypene ser riktige ut. På dette stadiet ligger dataene i et midlertidig objekt kalt df, og du er klar til å begynne å transformere dem.
1. Hvorfor bør du bruke innstillingen .option("inferSchema", "true") når du leser en CSV-fil?
2. Hvilken kommando brukes for å hente en eksisterende tabell fra katalogen inn i en Python DataFrame?
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår