Python ha alcuni ottimi strumenti per lavorare con i big data:
numpy
Le matrici mappate a memoria di Numpy consentono di accedere a un file salvato su disco come se fosse un array. Solo le parti dell'array con cui stai lavorando attivamente devono essere caricate in memoria. Può essere usato praticamente come un normale array.
h5py e pytables
Queste due librerie forniscono l'accesso ai file HDF5. Questi file consentono l'accesso a solo una parte dei dati. Inoltre, grazie alle librerie sottostanti utilizzate per accedere ai dati, è possibile eseguire molte operazioni matematiche e altre manipolazioni dei dati senza caricarli in una struttura di dati Python. Sono possibili file di grandi dimensioni e altamente strutturati, molto più grandi di 5 TB. Inoltre, consente una compressione senza perdita di dati.
banche dati
Esistono vari tipi di database che consentono di archiviare set di dati di grandi dimensioni e caricare solo le parti necessarie. Molti database consentono di eseguire manipolazioni senza caricare i dati in una struttura di dati Python.
panda
Ciò consente un accesso di livello superiore a vari tipi di dati, inclusi dati HDF5, file CSV, database e persino siti Web. Per i big data, fornisce wrapper per l'accesso ai file HDF5 che semplifica l'analisi dei set di big data.
mpi4py
Questo è uno strumento per eseguire il codice Python in modo distribuito su più processori o anche più computer. Ciò ti consente di lavorare su parti dei tuoi dati contemporaneamente.
dask
Fornisce una versione della normale matrice numpy che supporta molte delle normali operazioni numpy in modo multi-core in grado di lavorare su dati troppo grandi per adattarsi alla memoria.
fiammata
Uno strumento appositamente progettato per i big data. Fondamentalmente si tratta di un wrapper attorno alle librerie di cui sopra, che fornisce interfacce coerenti a una varietà di diversi metodi di archiviazione di grandi quantità di dati (come HDF5 o database) e strumenti per facilitare la manipolazione, eseguire operazioni matematiche e analizzare dati che è troppo grande per adattarsi alla memoria.