Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Introduksjon til Spark DataFrames | Arbeide med Data
Databricks Grunnleggende: En Nybegynnerguide

Introduksjon til Spark DataFrames

Sveip for å vise menyen

Note
Definisjon

En Spark DataFrame er en distribuert samling av data organisert i navngitte kolonner. Konseptuelt tilsvarer det en tabell i en relasjonsdatabase eller et regneark med kolonneoverskrifter, men det er designet for å behandles på tvers av en klynge med datamaskiner.

Når du går videre til seksjon 4, flytter vi fokuset fra grensesnittet til selve dataene. For å arbeide effektivt i Databricks må du forstå DataFrame. Dette er den grunnleggende strukturen som brukes av Apache Spark for å lagre og manipulere data. Enten du bruker Python, SQL eller Scala, vil nesten alt du gjør innebære å jobbe med en DataFrame.

Det finnes også et PySpark-grensesnitt som du vil bruke senere.

Apache Spark er en kraftig motor for å behandle store mengder data parallelt på tvers av mange datamaskiner samtidig. Den er skrevet i Scala og står for den tunge databehandlingen i Databricks.

PySpark er rett og slett Python-grensesnittet til Spark. Det lar deg skrive vanlig Python-kode som i det skjulte forteller Spark hva som skal gjøres i bakgrunnen.

Så når du skriver en df.filter() eller df.groupBy() i en Databricks-notatbok, skriver du PySpark — men det er Spark som faktisk behandler millioner av rader i klyngen din.

Regneark-analogi

Den enkleste måten å visualisere en DataFrame på, er å tenke på et enkelt ark i en Excel-arbeidsbok. Det har rader med data og kolonner med spesifikke navn som "Date", "Product_ID" eller "Price". Men i motsetning til et Excel-ark som ligger på din bærbare PC, er en Spark DataFrame distribuert. Dette betyr at hvis datasettet ditt er for stort for én datamaskin, deler Spark "regnearket" opp i mindre deler og fordeler dem på de ulike nodene i klyngen din.

Hvorfor bruke DataFrames i stedet for råfiler?

Når du leser en rå CSV- eller JSON-fil inn i en DataFrame, gjør Databricks to viktige ting:

  • Skjemainferens: analyserer dataene for å forstå at "Price" er et tall og "Name" er tekst;
  • Optimalisering: når dataene er i en DataFrame, kan Spark bruke sin "optimizer" for å finne den raskeste måten å filtrere eller aggregere dataene på. Den fungerer som en GPS og finner den mest effektive ruten til resultatet ditt, slik at du ikke sløser med datakraft.

Viktige egenskaper

Det er tre hovedtrekk ved DataFrames du bør huske på:

  • Uforanderlig: Når et DataFrame er opprettet, kan det ikke endres. Hvis du "renser" dataene eller "fjerner en kolonne", oppretter Spark faktisk et nytt DataFrame med disse endringene anvendt. Dette sikrer dataintegritet;
  • Lat evaluering: Spark utfører faktisk ikke noe arbeid før du ber om et resultat (som en telling eller en visning). Den bygger først en "plan" og utfører den kun når det er absolutt nødvendig;
  • Enhetlig API: Du kan opprette et DataFrame med Python og deretter gjøre spørringer med SQL. Den underliggende strukturen forblir den samme, noe som muliggjør "språkmiksing" som vi praktiserte i seksjon 3.

DataFrames vs. Tabeller

I Databricks brukes begrepene "Tabell" og "DataFrame" ofte om hverandre, men det er en liten forskjell. En Tabell er et permanent objekt lagret i din Catalog. Et DataFrame er et midlertidig objekt som eksisterer i klyngens minne mens notatboken din kjører.

Vanligvis vil arbeidsflyten din være:

  • Laste data fra Catalog inn i et DataFrame;
  • Manipulere DataFrame ved hjelp av kode;
  • Lagre det endelige resultatet tilbake til Catalog som en Tabell.

1. Hvordan håndterer et Spark DataFrame et datasett som er for stort for én enkelt datamaskin?

2. Hva skjer når du "modifiserer" et DataFrame i Spark, for eksempel ved å fjerne en kolonne?

question mark

Hvordan håndterer et Spark DataFrame et datasett som er for stort for én enkelt datamaskin?

Velg det helt riktige svaret

question mark

Hva skjer når du "modifiserer" et DataFrame i Spark, for eksempel ved å fjerne en kolonne?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 1

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 4. Kapittel 1
some-alt