![Quale formato dati utilizzare per il tuo progetto Big Data?
| Intelligenza-Artificiale Quale formato dati utilizzare per il tuo progetto Big Data?
| Intelligenza-Artificiale](https://intelligenza-artificiale.eu/wp-content/uploads/2023/10/Quale-formato-dati-utilizzare-per-il-tuo-progetto-Big-Data.jpeg)
La scelta del formato dati corretto è fondamentale nei progetti di data science, in quanto influisce su tutto, dalla velocità di lettura/scrittura dei dati al consumo di memoria e all’interoperabilità. Questo articolo esplora sette formati di serializzazione/deserializzazione popolari in Python, concentrandosi sulle loro implicazioni in termini di velocità e utilizzo della memoria.
Attraverso l’analisi vedremo anche come possiamo utilizzare la profilazione in Python (usando il file cProfile
modulo integrato) e come possiamo ottenere statistiche sull’utilizzo della memoria per file specifici nel tuo filesystem (usando il modulo os
modulo Python).
Naturalmente, ogni progetto ha le sue specificità, oltre alla velocità e all’utilizzo della memoria. Ma tracceremo alcuni trend, che speriamo possano essere utili per far luce su quale formato possiamo scegliere per un determinato progetto.
Comprendere la serializzazione e la deserializzazione
La serializzazione è il processo di salvataggio di un oggetto (in Python, ad esempio un DataFrame panda) in un formato che può essere salvato in un file per un successivo recupero. La deserializzazione è il processo inverso.
Un dataframe è un oggetto Python e non può essere persistente così com’è. È necessario tradurlo in un file per poter caricare questo oggetto in una fase successiva.
Quando salvi un dataframe, “serializza” i dati. E quando lo ricarichi, lo “deserializzi” o lo traduci nuovamente in un formato leggibile dal linguaggio (qui leggibile da Python).
Alcuni formati sono ampiamente utilizzati perché leggibili dall’uomo, come JSON o CSV. Questi due formati vengono utilizzati anche perché sono indipendenti dalla lingua. Proprio come buffer del protocolloche sono stati originariamente sviluppati da Google. Anche JSON e il buffer di protocollo sono popolari per le API e consentono l’invio di dati tra diversi servizi scritti in linguaggi diversi.
D’altra parte, alcuni formati, come pickle di Python, sono specifici del linguaggio e non sono ideali per trasferire dati tra servizi in diversi linguaggi di programmazione. Ad esempio, per un caso d’uso di machine learning, se un repository addestra un modello e lo serializza in pickle, questo file potrà essere letto solo da Python. Quindi, se l’API che…
Fonte: towardsdatascience.com