Analisi dei dati con le API di DataFrame

Completato

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.