Visualizzazione post con etichetta Python. Mostra tutti i post
Visualizzazione post con etichetta Python. Mostra tutti i post

07 marzo 2025

Come convertire un file .CSV in un file .PARQUET utilizzando Python

 


Oggi andiamo a vedere come convertire un file .CSV in un file .PARQUET utilizzando Python, ma prima andiamo a vedere cos'è e a cosa serve un file PARQUET


FILE PARQUET CHE ROBA È? 

Sono venuto a "contatto" per la prima volta con un file PARQUET  lo scorso mese per motivi di lavoro, quindi nel momento in cui ho ricevuto la richiesta di convertire un file .CSV in un file .PARQUET la prima cosa che ho fatto è stata quella di documentarmi su cosa sia un file PARQUET. 

Questo è quello che ho trovato su internet: 

"Un file Apache Parquet è un formato di data storage open source utilizzato per i database colonnari nelle query analitiche. Se hai piccoli dataset ma milioni di righe da cercare, potrebbe essere meglio utilizzare un formato colonnare per ottenere performance migliori. I database colonnari memorizzano i dati raggruppando le colonne anziché il database standard basato su righe che raggruppa per righe. Un file Parquet è uno dei diversi formati di storage colonnare."


"Oltre alle performance delle query basate sul modo in cui i file Parquet memorizzano i dati, l'altro vantaggio principale è l'efficienza in termini di costi. I file Apache Parquet sono dotati di compressione e decompressione altamente efficienti, quindi non occupano tanto spazio quanto un file di database standard. Con meno spazio di storage, un'azienda può risparmiare migliaia di dollari in costi di storage.


Se volete altre info su questo formato visitate questo sito web: Apache Parquet .


CONVERTIRE UN FILE .CSV IN UN FILE .PARQUET CON PYTHON

Quindi ricevuta la richiesta per  sviluppare un flusso che convertisse un file .CSV in .PARQUET per poi inviarlo sul server, la prima cosa che ho fatto è stato capire come fare la conversione. 

In mio aiuto è arrivato il mitico Python, quindi ho sviluppato un piccolo programma per effettuare la conversione. Questo è il codice che ho utilizzato: 

import pandas as pd
import os

# Percorsi di input e output
INPUT_FOLDER = "Inserisci il path dove trova il file .CSV"
OUTPUT_FOLDER = "Inserisci il path dove salvare il file. PARQUET"

# Assicura che la cartella di output esista
os.makedirs(OUTPUT_FOLDER, exist_ok=True)

# Scansiona tutti i file CSV nella cartella di input
for file_name in os.listdir(INPUT_FOLDER):
    if file_name.endswith(".csv"):
        csv_path = os.path.join(INPUT_FOLDER, file_name)
        parquet_path = os.path.join(OUTPUT_FOLDER, file_name.replace(".csv", ".parquet"))

        try:
            print(f"🔄 Convertendo: {csv_path}{parquet_path}")
            df = pd.read_csv(csv_path)  # Legge il file CSV
            df.to_parquet(parquet_path, engine="pyarrow", index=False)  
            print(f"✅ Conversione completata: {parquet_path}")
        except Exception as e:
            print(f"❌ Errore nella conversione di {csv_path}: {e}")

print("Tutti i file CSV sono stati convertiti con successo!")


Questo semplice programma va a prendere tutti i file .CSV che trova nella cartella che hai definito come INPUT_FOLDER e lo converte e salva come .PARQUET nella cartella che hai definito su OUTPUT_FOLDER.


CONCLUSIONI

Secondo me questa è una soluzione molto veloce e semplice per fare quello chi mi è stato richiesto. Se hai domande, dubbi o se vuoi suggerire miglioramenti al codice sfrutta i commenti sotto questo post. 

Ciao 
Mr Tozzo 

La foto di copertina è stata presa qui: Programmazione&C