Convertire XLSX in Parquet

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.

  • Dove gira Nel tuo browser. Il file non viene mai caricato.
  • Ricostruito Parquet funziona in modo diverso da XLSX. Non è quindi il degrado graduale di un codec con perdita: quello che Parquet sa esprimere viene riprodotto fedelmente, e quello che lì non ha un equivalente non sopravvive affatto.
  • Limite di dimensione Fino a 100 MB per file, gratis e senza account.
  • Vale la pena saperlo Viene letto solo il primo foglio, e di quello solo i valori. Formule, formattazione, larghezza delle colonne e ogni foglio successivo restano fuori.

Fino a 100 file alla volta. Formati diversi insieme non sono un problema.

Un foglio di calcolo memorizza righe; Parquet memorizza colonne

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.

Come ogni colonna ottiene il suo tipo

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.

Un valore fuori posto rende la colonna testo, deliberatamente

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.

Perché gli interi grandi diventano DOUBLE e non INT64

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.

La differenza di dimensione, misurata

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.

Le date arrivano come conteggi giorni, non timestamp

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.

Leggere il risultato in DuckDB, pandas o Spark

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.

Un foglio, e cosa fare del resto

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.

Dove viene scritto il file, e cosa lo limita

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.

Quando CSV o NDJSON è la destinazione migliore

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.

Come convertire XLSX in Parquet

  1. Trascina il tuo file XLSX su questa pagina, oppure fai clic per sceglierne uno.
  2. Scegli Parquet come destinazione. La conversione avviene nel tuo browser e il file non viene caricato.
  3. Scarica il file Parquet finito.

XLSX o Parquet: cosa cambia

XLSX a confronto con Parquet
XLSXParquet
Nome completoCartella di lavoro di ExcelApache Parquet
Estensione del file.xlsx.parquet
Tipo di mediaapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetapplication/vnd.apache.parquet
CompressioneSenza perdita — non si butta via niente
Prima pubblicazione20072013
Pubblicato daMicrosoftApache Software Foundation
SpecificaECMA-376
LicenzaStandard apertoStandard aperto
Situazione attualeAttualeAttuale
Si apre nel browserNessun browserNessun browser
Valutato al suo postoCSV, ODSCSV, JSON

Che cosa si perde

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.

Aprire il risultato

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.

A che cosa serve ciascun formato

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.

Da XLSX a Parquet: domande frequenti

Il mio file XLSX viene caricato da qualche parte?

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.

Convertire XLSX in Parquet è gratis?

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.

Si perde qualità convertendo XLSX in Parquet?

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.

Che cosa succede a un file XLSX quando diventa Parquet?

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.

Altro su questi formati