Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Introduktion til Spark DataFrames | Arbejde med Data
Databricks Grundlæggende: En Begyndervejledning

Introduktion til Spark DataFrames

Stryg for at vise menuen

Note
Definition

En Spark DataFrame er en distribueret samling af data organiseret i navngivne kolonner. Konceptuelt svarer det til en tabel i en relationsdatabase eller et regneark med kolonneoverskrifter, men det er designet til at blive behandlet på tværs af en klynge af computere.

Når du går videre til Afsnit 4, skifter vi fokus fra grænsefladen til selve dataene. For at arbejde effektivt i Databricks skal du forstå DataFrame. Dette er den grundlæggende struktur, som Apache Spark bruger til at holde og manipulere data. Uanset om du bruger Python, SQL eller Scala, vil næsten alt, du foretager dig, involvere interaktion med en DataFrame.

Der findes også et PySpark-interface, som du vil bruge senere.

Apache Spark er en kraftfuld motor til behandling af enorme datamængder parallelt på tværs af mange computere samtidigt. Det er skrevet i Scala og står for den tunge databehandling i Databricks.

PySpark er blot Python-interfacet til Spark. Det giver dig mulighed for at skrive almindelig Python-kode, som i baggrunden fortæller Spark, hvad der skal udføres.

Så når du skriver et df.filter() eller df.groupBy() i en Databricks-notesbog, skriver du PySpark — men det er Spark, der faktisk behandler millioner af rækker på tværs af din klynge.

Regnearksanalogien

Den nemmeste måde at visualisere et DataFrame på er at tænke på et enkelt ark i en Excel-projektmappe. Det har rækker med data og kolonner med specifikke navne som "Date", "Product_ID" eller "Price". Men i modsætning til et Excel-ark, der ligger på din bærbare computer, er et Spark DataFrame distribueret. Det betyder, at hvis dit datasæt er for stort til én computer, deler Spark "regnearket" op i mindre dele og fordeler dem på de forskellige noder i dit cluster.

Hvorfor bruge DataFrames i stedet for rå filer?

Når du læser en rå CSV- eller JSON-fil ind i et DataFrame, gør Databricks to vigtige ting:

  • Schema Inference: analyserer dataene for at forstå, at "Price" er et tal og "Name" er tekst;
  • Optimering: når dataene er i et DataFrame, kan Spark bruge sin "optimizer" til at finde den hurtigste måde at filtrere eller aggregere dataene på. Det fungerer som en GPS, der finder den mest effektive rute til dit resultat, så du ikke spilder computerkraft.

Nøgleegenskaber

Der er tre hovedtræk ved DataFrames, du bør huske:

  • Uforanderlig: Når et DataFrame er oprettet, kan det ikke ændres. Hvis du "renser" dataene eller "fjerner en kolonne", opretter Spark faktisk et nyt DataFrame med de ændringer anvendt. Dette sikrer dataintegritet;
  • Doven evaluering: Spark udfører faktisk ikke noget arbejde, før du beder om et resultat (som et count eller en visning). Den opbygger først en "plan" og udfører den kun, når det er absolut nødvendigt;
  • Forenet API: Du kan oprette et DataFrame med Python og derefter forespørge det ved hjælp af SQL. Den underliggende struktur forbliver den samme, hvilket muliggør den "sprogblanding", vi praktiserede i Afsnit 3.

DataFrames vs. tabeller

I Databricks bruges begreberne "Tabel" og "DataFrame" ofte i flæng, men der er en lille forskel. En Tabel er et permanent objekt, der er gemt i din Katalog. Et DataFrame er et midlertidigt objekt, der findes i clusterens hukommelse, mens din notebook kører.

Typisk vil din arbejdsgang være:

  • Indlæs data fra Katalog til et DataFrame;
  • Manipulér DataFrame ved hjælp af kode;
  • Gem det endelige resultat tilbage i Katalog som en Tabel.

1. Hvordan håndterer et Spark DataFrame et datasæt, der er for stort til én enkelt computer?

2. Hvad sker der, når du "modificerer" et DataFrame i Spark, for eksempel ved at fjerne en kolonne?

question mark

Hvordan håndterer et Spark DataFrame et datasæt, der er for stort til én enkelt computer?

Vælg det korrekte svar

question mark

Hvad sker der, når du "modificerer" et DataFrame i Spark, for eksempel ved at fjerne en kolonne?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 1

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 4. Kapitel 1
some-alt