Una guida introduttiva per scalare Pandas

Guida introduttiva per Pandas

Nota dell’editore: Doris Lee è una relatrice per ODSC West dal 30 ottobre al 2 novembre. Assicurati di seguire il suo intervento, “Scaling your Data Science Workflows by Changing a Single Line of Code”.

pandas è una delle librerie di data science più popolari oggi. Secondo un recente sondaggio di StackOverflow, viene utilizzata da uno sviluppatore su quattro. È anche la libreria predefinita di data science insegnata in quasi tutti i corsi introduttivi di data science e nei bootcamp.

pandas funziona bene su set di dati ridotti per prototipazione rapida, ma spesso si blocca quando si deve lavorare con set di dati grandi.

Perché Pandas ≠ Scale 🤦

Questo deriva da alcune delle decisioni di progettazione fondamentali di pandas. pandas è una struttura di dati in memoria, il che significa che devi essere in grado di adattare i dati con cui stai lavorando alla memoria. Di conseguenza, è facile incorrere in errori di memoria anche con set di dati di dimensioni moderate.

Introduzione di Modin: Scaling di pandas cambiando solo una singola riga di codice

Per affrontare questi problemi, abbiamo sviluppato Modin – un’alternativa scalabile e plug-and-play a pandas. Modin consente agli esperti di utilizzare pandas su dati su scala, senza richiedere loro di cambiare una singola riga di codice. Modin sfrutta le nostre avanzate ricerche accademiche sui dataframe, l’astrazione alla base di pandas, per portare il meglio dei database e dei sistemi distribuiti ai dataframe. Per utilizzare Modin, tutto ciò che devi fare è sostituire la tua dichiarazione di importazione come segue:

#import pandas as pd
import modin.pandas as pd
df = pd.read_csv("bigdata.csv")

Una volta che hai cambiato la tua dichiarazione di importazione, sei pronto a usare Modin proprio come faresti con pandas! Puoi ottenere facilmente un aumento di velocità di 4X sul tuo laptop senza mai modificare il tuo codice pandas!

Esegui pandas su scala nel tuo data warehouse 🚀

La maggior parte dei team di dati aziendali archivia i propri dati in un database o un data warehouse, come Snowflake, BigQuery o DuckDB. Questo è un problema quando si cerca di lavorare con quei dati in pandas perché è necessario estrarre il set di dati nella memoria del proprio computer, il che può essere lento, costoso e causare gravi problemi di memoria.

Ponder risolve questo problema traducendo il tuo codice pandas in SQL comprensibile dal tuo data warehouse. L’effetto è che puoi utilizzare la tua API pandas preferita, ma le tue pipeline di dati vengono eseguite su una delle infrastrutture dati più testate e ottimizzate al mondo: i database.

Ecco quanto è facile iniziare:

import modin.pandas as pd

import ponder
ponder.init()

Quindi impostiamo una connessione al database. Ponder supporta attualmente Snowflake, BigQuery e DuckDB:

# Utilizzando il connettore Python di Snowflake
import snowflake.connector
db_con = snowflake.connector.connect(user=**, password=**, account=**, role=**, database=**, schema=**, warehouse=**)

Con Ponder, la funzione read_sql stabilisce semplicemente una connessione alla tabella nel tuo data warehouse. I dati rimangono nel tuo warehouse e qualsiasi comando pandas successivo viene eseguito come query SQL nel tuo warehouse.

df = pd.read_sql("DB_TABLE",db_con) # NOTA: I dati non vengono letti in memoria!

# Esegui operazioni in pandas - tutto in Snowflake!
df.describe() # Calcola le statistiche di riepilogo

Eseguendo tutto direttamente nel database, erediti la scalabilità del tuo data warehouse. Con Ponder, puoi eseguire pandas su più di un terabyte di dati. Abbiamo dimostrato che questo può portare a notevoli accelerazioni dei flussi di lavoro, risparmiando più di 2 ore di tempo di sviluppo quando si lavora con 150 milioni di righe di dati su Snowflake e BigQuery.

Puoi iniziare oggi stesso ad eseguire i tuoi flussi di lavoro dati Python nel tuo data warehouse registrandoti qui! Dai un’occhiata alla nostra guida introduttiva per scoprire come puoi iniziare.

Autore:

Doris Lee è CEO e co-fondatrice di Ponder. Doris ha conseguito il suo dottorato di ricerca presso il RISE Lab e la School of Information dell’UC Berkeley nel 2021, dove ha sviluppato strumenti che aiutano gli scienziati dei dati a esplorare e comprendere i propri dati. È stata inserita nella lista Forbes 30 under 30 per la tecnologia aziendale nel 2023.