Gegevens uit een Bestand Laden in een DataFrame
Veeg om het menu te tonen
Het spark.read-object is het startpunt voor het inlezen van externe gegevens in een Spark DataFrame. Het ondersteunt verschillende bestandsformaten, waaronder CSV, JSON, Parquet en Delta, en stelt je in staat te bepalen hoe Spark de bestanden moet interpreteren.
In Sectie 2 heb je een CSV-bestand geüpload naar de Databricks-omgeving. Nu leer je hoe je dat bestand uit de opslag "ophaalt" en in het geheugen van het cluster brengt als een DataFrame met behulp van Python. Dit is de eerste stap in vrijwel elke data-engineering pipeline.
De spark.read-syntaxis
Om een bestand te laden, gebruiken we een specifieke reeks commando's. De basisstructuur ziet er als volgt uit:
df = spark.read.format("csv").option("header", "true").load("path/to/file")
- format: geeft aan welk type bestand Spark gebruikt (csv, json, parquet);
- option("header", "true"): geeft aan dat Spark de eerste rij van het bestand als kolomnamen gebruikt;
- load: de specifieke locatie van het bestand binnen Databricks.
Schema automatisch laten afleiden
Standaard gaat Spark ervan uit dat elke kolom in een CSV een string (tekst) is. Om de data bruikbaarder te maken, voegen we een extra optie toe: .option("inferSchema", "true"). Wanneer dit is ingeschakeld, bekijkt Spark snel de data en bepaalt automatisch welke kolommen gehele getallen, decimalen of booleans zijn. Dit bespaart het handmatig definiëren van gegevenstypen.
Het vinden van het bestandspad
Voor het lezen van een bestand heb je het pad nodig. In het tabblad Catalogus of Werkruimte kun je het geüploade bestand vinden, op de drie puntjes (ellipsis) ernaast klikken en "Pad kopiëren" selecteren. In moderne Databricks, als je het bestand hebt geüpload via de Data Ingestion UI zoals in hoofdstuk 2.6, is de data al opgeslagen als een tabel, die we kunnen lezen met:
df = spark.read.table("main.default.sample_sales_records")
Als je echter het ruwe bestand direct vanaf een Volume leest, gebruik je het bestandspad:
df = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/Volumes/main/default/my_volume/sales_data.csv")
Laden controleren
Na het uitvoeren van het laadcommando is het best practice om de data te verifiëren. Je volgt direct na je read-commando met: display(df)
Dit bevestigt dat de data correct in het geheugen van de cluster is geladen, de kolomnamen op de juiste plaats staan en de gegevenstypen kloppen. Op dit moment bevindt de data zich in een tijdelijk object genaamd df en ben je klaar om deze te transformeren.
1. Waarom zou je de instelling .option("inferSchema", "true") gebruiken bij het lezen van een CSV-bestand?
2. Welk commando wordt gebruikt om een bestaande tabel uit de Catalogus in een Python DataFrame te laden?
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.