Cookie di statistica e di pubblicità
Usiamo cookie di statistica e di pubblicità, entrambi inviati a Google. Rifiutare non cambia niente di quello che vedi.Leggi la pagina sulla privacy
Qui converti XLSX in Parquet gratis e senza account: trascina il file qui sopra e in un paio di secondi il risultato è pronto da scaricare. La conversione avviene dentro il tuo browser, quindi il file non viene mai caricato. Funziona allo stesso modo su Windows, macOS e Linux e anche su iPhone e Android, e continua a funzionare anche se stacchi la connessione.
Fino a 100 file alla volta. Formati diversi insieme non sono un problema.
Vengono convertiti uno dopo l’altro e scaricati insieme in uno ZIP.
XLSX in Parquet
Ogni altro target che un workbook ha memorizza un record dopo l’altro. Parquet memorizza un campo dopo l’altro: tutte le cinquantamila date d’ordine insieme, poi tutte le cinquantamila città, poi tutti gli importi. Non è una preferenza di formattazione, è l’intera ragione per cui esiste il formato.
La conseguenza si vede la prima volta che lo interrogate. Una domanda che legge due campi su duecento tocca byte di due colonne piuttosto che ogni riga, e una colonna di valori ripetuti comprime molto più duramente degli stessi valori sparsi tra le righe.
Il tipo viene dedotto dai valori piuttosto che dichiarato, perché un foglio di calcolo non porta uno schema. Ogni colonna viene esaminata per intero: se ogni valore non vuoto è un booleano diventa BOOLEAN, se sono tutti interi nell’intervallo a 32 bit diventa INT32, se sono numeri ma non tutti interi diventa DOUBLE, qualunque altra cosa diventa una stringa.
I null non partecipano. Una colonna di numeri con vuoti è comunque una colonna numerica, con i vuoti scritti come null. L’inferenza legge l’intera colonna prima di decidere piuttosto che campionare, il che costa un passaggio sui dati e rimuove un’intera classe di sorpresa.
Una colonna di codici postali che inizia con cinquemila voci numeriche e poi contiene SW1A 1AA è una colonna stringa, e le voci numeriche vengono scritte anch’esse come stringhe. Lo stesso vale per una colonna quantità con "n/d" dentro.
L’alternativa allettante — prendere il tipo dalla prima riga e trasformare in null qualunque cosa disaccordi — produce un file valido che ha silenziosamente cancellato i valori che non stavano. Nessuno lo scopre finché un conteggio non torna corto. Una colonna stringa è visibile e mai perde silenziosamente una riga.
Parquet ha un tipo intero a 64 bit e non viene usato qui. I valori arrivano dal workbook come numeri JavaScript, che portano 53 bit di precisione intera, quindi qualunque cosa sia già nella pipeline è passata per quel limite prima che lo scrittore la veda.
Scrivere un tale valore come INT64 prometterebbe un’esattezza che il numero non ha più, e il fallimento sarebbe invisibile. DOUBLE è la dichiarazione onesta di ciò che è effettivamente noto. Se i vostri dati hanno identificatori oltre nove quadrilioni, memorizzateli come testo prima di convertire.
Su un foglio di cinquantamila righe e sei colonne — un id ordine, un codice prodotto, una città, una quantità, un prezzo e un flag — il file Parquet arrivava a 301 KB. Gli stessi dati erano circa 4,3 MB come .xlsx e 1,8 MB scritti come testo separato da tab.
Il divario non è solo compressione. I valori ripetuti in un archivio colonnare sono tenuti una volta e referenziati, motivo per cui le colonne città e codice prodotto costano quasi nulla, mentre una colonna di testo libero unico ridurrebbe considerevolmente la differenza.
Ciò che un foglio di calcolo memorizza in una cella data è un numero e un formato di visualizzazione. La conversione scrive il numero, quindi il 1 gennaio 2024 diventa 45292, contato dalla fine di dicembre 1899, e la colonna è tipizzata come intero come qualunque altro numero intero.
Significa che non c’è semantica timestamp nell’output, e un motore di query tratterà la colonna per quello che è: un intero. Applicare il calendario è un’espressione di una riga dove interrogate — aggiungendo il conteggio giorni alla data epoca.
Non serve nulla di speciale. DuckDB legge il file direttamente in una clausola FROM, pandas lo legge con una chiamata singola, e Spark lo tratta come formato tabella nativo. Il file inizia e finisce con i quattro byte PAR1.
La prima cosa da fare dopo il caricamento è guardare i tipi dedotti piuttosto che le prime dieci righe. Una colonna che vi aspettavate numerica e arrivata come testo vi sta dicendo qualcosa di vero sul foglio di calcolo, ed è molto più economico impararlo ora che dopo aver unito il file ad altri tre.
La conversione legge il primo foglio del workbook. Parquet contiene una tabella con uno schema, quindi un workbook multifoglio non può essere rappresentato in un singolo file senza inventare una fusione che nessuno ha chiesto, e prendere il primo foglio è l’unica scelta che non lo fa.
Per un workbook dove diversi fogli contano, convertite ciascuno separatamente e lasciate che il motore di query li rimetta insieme. È la disposizione per cui quei motori sono costruiti, e produce un risultato migliore di un unico foglio con una colonna discriminante incollata.
Entrambe le metà girano nel vostro browser: il lettore foglio di calcolo e lo scrittore Parquet sono librerie caricate su richiesta da questa pagina, e nessuna richiesta porta il workbook da nessuna parte. Per un export di dati clienti o finanziari è spesso il fattore decisivo.
Il limite è la memoria piuttosto che un livello a pagamento. Il foglio viene letto in righe, trasposto in colonne e scritto, quindi l’intera tabella esiste in una volta; decine di megabyte sono normali e centinaia è dove una scheda browser comincia a faticare.
Parquet è una scelta scarsa per qualunque cosa una persona debba guardare. È binario, non modificabile, e un collega senza gli strumenti giusti non può aprirlo affatto. Se il file va a un essere umano, inviate un foglio di calcolo o un CSV.
È anche il target sbagliato per un caricamento una tantum, dove il costo di scrittura non compra nulla: NDJSON scorre in un job di ingest ed è fatto. Scegliete Parquet quando gli stessi dati verranno interrogati ripetutamente, uniti ad altre tabelle, e conservati.
| XLSX | Parquet | |
|---|---|---|
| Nome completo | Cartella di lavoro di Excel | Apache Parquet |
| Estensione del file | .xlsx | .parquet |
| Tipo di media | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet | application/vnd.apache.parquet |
| Compressione | — | Senza perdita — non si butta via niente |
| Prima pubblicazione | 2007 | 2013 |
| Pubblicato da | Microsoft | Apache Software Foundation |
| Specifica | ECMA-376 | — |
| Licenza | Standard aperto | Standard aperto |
| Situazione attuale | Attuale | Attuale |
| Si apre nel browser | Nessun browser | Nessun browser |
| Valutato al suo posto | CSV, ODS | CSV, JSON |
Un foglio di calcolo diventa una pagina fissa. Le formule smettono di essere formule e conservano solo l'ultimo risultato, e a decidere le interruzioni di pagina è l'area di stampa, non il foglio — per questo un file XLSX largo arriva spesso in Parquet diviso su più pagine.
I programmi di sempre non coincidono: XLSX si apre in Microsoft Excel, LibreOffice Calc e Google Sheets, Parquet in pandas, Apache Spark e DuckDB, quindi chi riceve il risultato ha bisogno di uno del secondo gruppo.
I due puntano a lavori diversi: XLSX a la modifica, Parquet a l'archiviazione e spostare dati fra programmi. Vale la pena valutarlo prima, perché il motivo per cui esiste uno è di solito il motivo per cui l'altro risulta scomodo.
XLSX è il formato di Microsoft, pubblicato nel 2007. È descritto in ECMA-376, e vale la pena conoscerlo se il file deve sopravvivere allo strumento che lo ha scritto.
Parquet viene da Apache Software Foundation e risale al 2013. pandas, Apache Spark e DuckDB lo leggono.
No. Questa conversione avviene interamente nel tuo browser, quindi il file non esce dal tuo dispositivo. Puoi controllarlo da solo: apri la scheda di rete degli strumenti per sviluppatori e converti qualcosa. Vedrai la pagina stessa e le richieste di statistica e di pubblicità con cui questo servizio si paga, e nemmeno una che porti il tuo file. Il motore di questa coppia è parquet-wasm, una compilazione WebAssembly del lettore di Apache Arrow; il browser lo scarica una volta e lo tiene in cache.
Sì. Senza account, senza filigrana e senza una quota giornaliera da consumare: gira sulla tua macchina, quindi puoi tornare quante volte vuoi. Il browser lavora file fino a 100 MB, 100 per volta. parquet-wasm viene scaricato sulla tua macchina e gira lì, ed è per questo che non c’è un contatore.
XLSX e Parquet descrivono il contenuto in modi radicalmente diversi. La conversione è quindi una ricostruzione e non una copia: fedele, ma non identica byte per byte. Viene letto solo il primo foglio, e di quello solo i valori. Formule, formattazione, larghezza delle colonne e ogni foglio successivo restano fuori.
Un foglio di calcolo diventa una pagina fissa. Le formule smettono di essere formule e conservano solo l'ultimo risultato, e a decidere le interruzioni di pagina è l'area di stampa, non il foglio — per questo un file XLSX largo arriva spesso in Parquet diviso su più pagine.