Convertire NDJSON in Parquet

Qui converti NDJSON 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 NDJSON. 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 Gli oggetti annidati vengono appiattiti in colonne. I dati molto annidati perdono la loro forma.

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

Un file append-only deriva, e Parquet vuole uno schema unico

Ogni riga di un file NDJSON è indipendente, ed è esattamente per questo che è il formato a cui si aggiunge: un nuovo campo può essere aggiunto senza riscrivere le righe esistenti.

Parquet non ha tolleranza per questo: il suo footer dichiara un insieme fisso di colonne con un tipo ciascuna. La conversione deve riconciliare le generazioni in un solo schema.

L’insieme di colonne è l’unione di ogni riga, non un campione

Un campo che appare per la prima volta trecentomila righe dentro il file diventa comunque una colonna, e le righe precedenti ottengono valori nulli.

La maggior parte degli strumenti campiona invece — le prime mille righe — ed è per questo che un caricamento funzionante su un estratto di prova fallisce in produzione, scartando silenziosamente ogni campo non visto.

Un campo il cui tipo è cambiato produce una colonna testo

Un identificatore che era un numero e ora è tra virgolette, uno stato che era booleano e ora è testo — tutti compaiono in file eventi longevi, di solito senza che nessuno se ne accorga.

Il tipo di ogni colonna è deciso su ogni valore al suo interno: tutti booleani dà BOOLEAN, interi nel range a 32 bit danno INT32, altri numeri danno DOUBLE, e qualsiasi cosa mista dà una colonna testo.

Cosa succede a un campo evento annidato

Gli eventi strutturati nidificano per convenzione: un blocco richiesta, un blocco utente. Parquet non ha dove mettere un oggetto dentro una cella, quindi ogni record viene appiattito ai suoi rami.

Gli array si appiattiscono per posizione, quindi un array tags con a e b diventa tags.0 e tags.1, e l’insieme di colonne è l’unione attraverso tutto il file.

I grandi interi finiscono come DOUBLE, non INT64

Parquet ha un tipo intero a 64 bit e questa conversione non lo emette mai. I valori passano attraverso numeri JavaScript, che portano 53 bit di precisione intera.

I file eventi sono pieni dei valori colpiti da questo: timestamp epoca in millisecondi, identificatori tipo snowflake. Per un timestamp, DOUBLE va bene; per un identificatore no, e la correzione è emettere identificatori come stringhe JSON.

La differenza di dimensione su 50.000 eventi

Cinquantamila record di ordini generati con sei campi sono arrivati a 207 KB come Parquet contro 4,8 MB come NDJSON — meglio di venti a uno su questi dati.

Ogni riga di NDJSON ripete ogni nome di campo, mentre in un archivio colonnare ogni nome è scritto una volta sola, nel footer.

La conversione non lavora in streaming, e il motivo è lo schema

C’è una vera ironia qui. NDJSON esiste perché un consumatore non debba mai tenere l’intero file in memoria, e questa conversione tiene l’intero file.

Il livello gratuito accetta fino a 100 MB; decine di megabyte convertono senza problemi. Sopra quello, split -l 500000 produce file validi che una cartella di Parquet legge come una sola tabella.

Gli eventi restano sulla vostra macchina mentre vengono trasposti

Lo scrittore Parquet e l’analisi JSON sono entrambi JavaScript ordinario, caricato su richiesta da questa pagina — nessun modulo WebAssembly e nessun passaggio server.

Per la telemetria questo è di solito il fattore decisivo: i flussi di eventi contengono identificatori utente, indirizzi IP e percorsi di richiesta, e il fatto che questi dati siano in transito verso un archivio analitico non rende un convertitore web di terze parti una tappa accettabile.

Come convertire NDJSON in Parquet

  1. Trascina il tuo file NDJSON 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.

NDJSON o Parquet: cosa cambia

NDJSON a confronto con Parquet
NDJSONParquet
Nome completoNewline-Delimited JSONApache Parquet
Estensione del file.ndjson, .jsonl.parquet
Tipo di mediaapplication/x-ndjsonapplication/vnd.apache.parquet
CompressioneSenza perdita — non si butta via niente
Prima pubblicazione20132013
Pubblicato daApache Software Foundation
LicenzaStandard apertoStandard aperto
Situazione attualeAttualeAttuale
Si apre nel browserNessun browserNessun browser
Valutato al suo postoJSON, CSVCSV, JSON

Aprire il risultato

pandas legge sia NDJSON sia Parquet, quindi puoi confrontare il risultato con l'originale senza un secondo programma.

A che cosa serve ciascun formato

Parquet viene da Apache Software Foundation e risale al 2013. pandas, Apache Spark e DuckDB lo leggono.

Da NDJSON a Parquet: domande frequenti

Il mio file NDJSON 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 NDJSON 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 NDJSON in Parquet?

NDJSON 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. Gli oggetti annidati vengono appiattiti in colonne. I dati molto annidati perdono la loro forma.

Devo installare qualcosa per aprire un file Parquet?

Per la conversione no: avviene nel browser che hai già aperto. Per aprire il risultato ti serve poi il programma con cui il tuo dispositivo mostra di solito Apache Parquet.

Altro su questi formati