Ladda Data Från en Fil till en DataFrame
Svep för att visa menyn
Objektet spark.read är ingångspunkten för att läsa in extern data till en Spark DataFrame. Det stöder olika filformat, inklusive CSV, JSON, Parquet och Delta, och låter dig definiera hur Spark ska tolka filerna.
I avsnitt 2 laddade du upp en CSV-fil till Databricks-miljön. Nu kommer du att lära dig hur du "hämtar" den filen från lagringen och tar in den i klustrets minne som en DataFrame med hjälp av Python. Detta är det första steget i nästan varje dataingenjörspipeline.
Syntax för spark.read
För att läsa in en fil använder vi en specifik kedja av kommandon. Den grundläggande strukturen ser ut så här:
df = spark.read.format("csv").option("header", "true").load("path/to/file")
- format: anger för Spark vilken typ av fil det är (csv, json, parquet);
- option("header", "true"): anger för Spark att använda den första raden i filen som kolumnnamn;
- load: den specifika platsen för filen inom Databricks.
Härledning av schema
Som standard antar Spark att varje kolumn i en CSV är en sträng (text). För att göra våra data mer användbara lägger vi till ett alternativ till: .option("inferSchema", "true"). När detta är aktiverat gör Spark en snabb genomgång av datan och identifierar automatiskt vilka kolumner som är heltal, decimaltal eller boolean. Detta sparar dig det manuella arbetet med att själv definiera datatyper.
Hitta din filsökväg
För att läsa en fil behöver du dess sökväg. I fliken Catalog eller Workspace kan du hitta din uppladdade fil, klicka på de tre prickarna (ellipsen) bredvid den och välja "Copy path". I moderna Databricks, om du laddade upp filen via Data Ingestion UI som vi gjorde i Kapitel 2.6, är datan redan sparad som en tabell, som vi kan läsa med:
df = spark.read.table("main.default.sample_sales_records")
Om du däremot läser råfilen direkt från en Volume, använder du filsökvägen:
df = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/Volumes/main/default/my_volume/sales_data.csv")
Verifiera inläsningen
Efter att ha kört inläsningskommandot är det god praxis att verifiera datan. Du bör omedelbart följa ditt read-kommando med: display(df)
Detta bekräftar att datan har lästs in korrekt i klustrets minne, att rubrikerna är på rätt plats och att datatyperna ser korrekta ut. I detta skede ligger datan i ett temporärt objekt som heter df, och du är redo att börja transformera den.
1. Varför bör du använda inställningen .option("inferSchema", "true") när du läser in en CSV?
2. Vilket kommando används för att hämta en befintlig tabell från katalogen till en Python DataFrame?
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal