Indlæsning af Data fra en Fil til en DataFrame
Stryg for at vise menuen
Objektet spark.read er indgangspunktet for at læse eksterne data ind i en Spark DataFrame. Det understøtter forskellige filformater, herunder CSV, JSON, Parquet og Delta, og giver dig mulighed for at definere, hvordan Spark skal fortolke filerne.
I sektion 2 uploadede du en CSV-fil til Databricks-miljøet. Nu lærer du, hvordan du "løfter" denne fil fra lageret og bringer den ind i clusterens hukommelse som en DataFrame ved hjælp af Python. Dette er det første trin i næsten enhver data engineering-pipeline.
Syntax for spark.read
For at indlæse en fil bruger vi en specifik kæde af kommandoer. Den grundlæggende struktur ser sådan ud:
df = spark.read.format("csv").option("header", "true").load("path/to/file")
- format: angiver filtypen til Spark (csv, json, parquet);
- option("header", "true"): angiver, at Spark skal bruge den første række i filen som kolonnenavne;
- load: den specifikke placering af filen i Databricks.
Udledning af skema
Som standard antager Spark, at hver kolonne i en CSV er en streng (tekst). For at gøre dataene mere anvendelige tilføjes en ekstra mulighed: .option("inferSchema", "true"). Når dette er aktiveret, gennemgår Spark hurtigt dataene og identificerer automatisk, hvilke kolonner der er heltal, decimaler eller booleans. Dette sparer manuelt arbejde med at definere datatyper selv.
Find din filsti
For at læse en fil skal du kende dens sti. I fanen Catalog eller Workspace kan du finde din uploadede fil, klikke på de tre prikker (ellipsis) ved siden af den og vælge "Copy path". I moderne Databricks, hvis du har uploadet filen via Data Ingestion UI som vi gjorde i Kapitel 2.6, er dataene allerede gemt som en tabel, som vi kan læse ved hjælp af:
df = spark.read.table("main.default.sample_sales_records")
Hvis du derimod læser råfilen direkte fra et Volume, skal du bruge filstien:
df = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/Volumes/main/default/my_volume/sales_data.csv")
Verificering af indlæsning
Efter at have kørt indlæsningskommandoen, er det god praksis at verificere dataene. Du bør straks følge din read-kommando med: display(df)
Dette bekræfter, at dataene er blevet indlæst korrekt i clusterens hukommelse, at overskrifterne er placeret korrekt, og at datatyperne ser korrekte ud. På dette tidspunkt ligger dataene i et midlertidigt objekt kaldet df, og du er klar til at begynde at transformere dem.
1. Hvorfor bør du bruge indstillingen .option("inferSchema", "true") når du læser en CSV-fil?
2. Hvilken kommando bruges til at hente en eksisterende tabel fra kataloget ind i en Python DataFrame?
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat