Dataanalyse ved hjælp af DataFrame-API'er
Brug af DataFrame-API'er til dataanalyse er afgørende for effektivt at udforske, manipulere og analysere strukturerede data i forskellige programmer.
DataFrame API'er leveres af flere databehandlingsbiblioteker, såsom Pandas i Python, Apache Spark og R's dplyr, der hver især tilbyder værktøjer til at håndtere store datasæt med lethed. Arbejdet med DataFrames ser ud til at være ens på tværs af biblioteker, men hvert bibliotek har nogle små variationer i dets funktioner.
Spark DataFrame
En Spark DataFrame er en distribueret samling af data, der er organiseret i navngivne kolonner, ligesom en tabel i en database. Det giver dig mulighed for at forespørge på og transformere store datasæt ved hjælp af SQL-lignende handlinger eller API'er, mens du automatisk skalerer på tværs af en klynge. DataFrames indeholder et omfattende sæt funktioner (vælg kolonner, filtrer, join, aggreger), der giver dig mulighed for at løse almindelige dataanalyseproblemer effektivt.
Her er et eksempel på brug af Spark DataFrame-API'er i Python. Koden opretter en Spark DataFrame med navne og aldre og demonstrerer derefter valg af en kolonne, filtrering af rækker efter alder og gruppering efter alder for at tælle forekomster.
# Create a sample DataFrame
data = [("Alice", 34), ("Bob", 45), ("Cathy", 29)]
columns = ["Name", "Age"]
df = spark.createDataFrame(data, columns)
# Select columns
df.select("Name").show()
# Filter rows
df.filter(df["Age"] > 30).show()
# Group by and aggregate
df.groupBy("Age").count().show()
En Spark DataFrame er en distribueret, klyngebaseret datastruktur, der er designet til at håndtere meget store datasæt ved at opdele og behandle dem på tværs af flere maskiner.
Pandas DataFrame
En Pandas DataFrame er en datastruktur i hukommelsen med en enkelt maskine, der er bedst til små til mellemstore datasæt, der passer på én computer.
Og her er et eksempel på, hvordan du udfører de samme opgaver ved hjælp af Pandas DataFrame-API'er i Python:
import pandas as pd
# Create a sample DataFrame
data = {'Name': ['Alice', 'Bob', 'Cathy', 'David'],
'Age': [34, 45, 29, 23]}
df = pd.DataFrame(data)
# Select columns
print(df[['Name']])
# Filter rows
print(df[df['Age'] > 30])
# Group by and aggregate
print(df.groupby('Age').size())
Sammenligning af Spark DataFrame med Pandas DataFrame
| Funktion | Spark DataFrame | pandaer DataFrame |
|---|---|---|
| Henrettelse | Distribueret på tværs af en klynge | Kører på en enkelt maskine (i hukommelsen) |
| skalerbarhed | Håndterer meget store datasæt (terabyte eller mere) | Bedst til små til mellemstore datasæt (passer i RAM) |
| Api'er | SQL-lignende operationer, Spark API'er i Python/Scala/Java/R | Python-baseret API |
| ydeevne | Optimeret med Catalyst & Tungsten motorer | Optimeret til enkeltnodeoperationer |
| Doven vs. ivrig | Lazy evaluering (planlægger forespørgsel før udførelse) | Ivrig udførelse (kører med det samme) |
| Eksempler på brug | Big data-behandling, ETL, streaming, maskinlæring | Dataanalyse, prototyper, letvægts ML |
| Integration | Fungerer med Spark-økosystem og distribueret lager | Fungerer med Python-økosystem (NumPy, SciPy osv.) |
Drikkepenge
Du kan få flere oplysninger om indlæsning og transformering af data ved hjælp af Spark under Apache Spark Python (PySpark) DataFrame-API, Apache Scala DataFrame-API eller SparkR SparkDataFrame-API.