Analisi dei dati con le API di DataFrame
L'uso delle API DataFrame per l'analisi dei dati è essenziale per esplorare, modificare e analizzare in modo efficiente i dati strutturati in varie applicazioni.
Le API dataframe sono fornite da diverse librerie di elaborazione dati, ad esempio Pandas in Python, Apache Spark e dplyr di R, ognuna delle quali offre strumenti per gestire set di dati di grandi dimensioni con facilità. L'uso dei DataFrame sembra simile in tutte le librerie, ma ogni libreria presenta leggere variazioni di funzionalità.
Spark DataFrame
Un dataframe Spark è una raccolta distribuita di dati organizzati in colonne denominate, analogamente a una tabella in un database. Consente di eseguire query e trasformare set di dati di grandi dimensioni usando operazioni o API simili a SQL durante il ridimensionamento automatico in un cluster. I dataframe offrono un set completo di funzioni (selezionare colonne, filtrare, unire, aggregare) che consentono di risolvere in modo efficiente i problemi comuni di analisi dei dati.
Di seguito è riportato un esempio di uso delle API dataframe Spark in Python. Il codice crea un dataframe Spark con nomi e età, quindi illustra la selezione di una colonna, il filtro delle righe in base all'età e il raggruppamento in base all'età per contare le occorrenze.
# 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()
Un dataframe Spark è una struttura di dati distribuita basata su cluster progettata per gestire set di dati di dimensioni molto grandi suddividendoli ed elaborandoli in più computer.
Dataframe Pandas
Un dataframe Pandas è una struttura di dati a computer singolo in memoria, ideale per set di dati da piccole a medie dimensioni che si adattano a un computer.
E di seguito è riportato un esempio di come eseguire le stesse attività usando le API del DataFrame Pandas in 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())
Confronto tra dataframe Spark e dataframe Pandas
| Caratteristica / Funzionalità | Spark DataFrame | pandas DataFrame |
|---|---|---|
| Esecuzione | Distribuito in un cluster | Viene eseguito in un singolo computer (in memoria) |
| Scalabilità | Gestisce set di dati molto grandi (terabyte o più) | Ideale per set di dati da piccoli a medi (si adatta alla RAM) |
| Api | Operazioni simili a SQL, API Spark in Python/Scala/Java/R | API basata su Python |
| Prestazioni | Ottimizzato con i motori Catalyst & Tungsten | Ottimizzato per le operazioni a nodo singolo |
| Lazy vs. Eager | Valutazione lazy (query dei piani prima dell'esecuzione) | Esecuzione eager (viene eseguita immediatamente) |
| Casi d'uso | Elaborazione di Big Data, ETL, streaming, Machine Learning | Analisi dei dati, creazione di prototipi, machine learning leggero |
| Integrazione | Funziona con l'ecosistema Spark e l'archiviazione distribuita | Funziona con l'ecosistema Python (NumPy, SciPy e così via) |
Suggerimento
Per ulteriori informazioni su come caricare e trasformare i dati utilizzando Spark, consulta API DataFrame di Apache Spark Python (PySpark), Apache Scala DataFrame o SparkR SparkDataFrame API.