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 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.
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.
NDJSON in Parquet
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.
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 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.
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.
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.
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.
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.
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.
| NDJSON | Parquet | |
|---|---|---|
| Nome completo | Newline-Delimited JSON | Apache Parquet |
| Estensione del file | .ndjson, .jsonl | .parquet |
| Tipo di media | application/x-ndjson | application/vnd.apache.parquet |
| Compressione | — | Senza perdita — non si butta via niente |
| Prima pubblicazione | 2013 | 2013 |
| Pubblicato da | — | Apache Software Foundation |
| Licenza | Standard aperto | Standard aperto |
| Situazione attuale | Attuale | Attuale |
| Si apre nel browser | Nessun browser | Nessun browser |
| Valutato al suo posto | JSON, CSV | CSV, JSON |
pandas legge sia NDJSON sia Parquet, quindi puoi confrontare il risultato con l'originale senza un secondo programma.
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.
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.
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.