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 Parquet in NDJSON 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.
Parquet in NDJSON
Un file Parquet dichiara il tipo di ogni colonna nel suo footer. Convertitelo in CSV e quella dichiarazione sparisce: ogni valore diventa caratteri.
JSON ha tipi propri. Un numero resta un numero, un booleano resta booleano, e null resta null, così il record che arriva dice la stessa cosa di sé che diceva la colonna Parquet.
Questo è il limite da conoscere prima di costruire qualcosa sull’output. Le colonne lista e struct vengono scritte nel JSON come stringhe contenenti JSON piuttosto che come JSON annidato.
È un passaggio in più per sistemarlo. Un jq con fromjson sul campo lo trasforma in un array reale, ed è anche l’occasione per decidere se il campo deve essere annidato affatto.
JSON non ha un tipo data. Una colonna timestamp è quindi scritta come stringa ISO 8601, che ogni linguaggio e validatore di schema legge senza bisogno di un formato dichiarato.
L’alternativa sarebbe un numero epoca, ed è peggiore in un record che una persona deve leggere: un campo con 1710149400000 è illeggibile senza sapere l’unità.
Parquet ha un tipo intero a 64 bit e i numeri JSON sono, in pratica, limitati a ciò che i parser sui due lati rappresentano esattamente — per la maggior parte, 53 bit.
Un valore dentro l’intervallo sicuro resta un numero; uno fuori diventa una stringa tra virgolette con ogni cifra intatta. Un riferimento d’ordine arrotondato assomiglia esattamente a un riferimento d’ordine e non corrisponde a nulla.
Il file è un oggetto JSON completo per riga e nient’altro — nessuna parentesi di apertura, nessuna virgola tra record. Un parser che si aspetta un array fallirà sulla seconda riga.
Ciò che l’assenza compra è che un consumatore può leggere una riga, agire, scartarla e proseguire, qualunque sia la dimensione del file.
Una tabella siede in una piattaforma dati, e qualcosa al di fuori — un indice di ricerca, una coda messaggi, un ambiente di staging — prende JSON e non ha mai sentito parlare di Parquet.
Un ciclo shell che legge righe e ne pubblica ognuna basta per un piccolo backfill. La prima cosa da controllare sono i nomi dei campi: una piattaforma dati dà alle colonne nomi formati dalla pipeline che li ha prodotti.
Un null in una colonna Parquet viene scritto come null nel JSON, il che preserva una distinzione che nessun formato delimitato può portare: null e stringa vuota sono valori diversi.
Un campo dichiarato come stringa rifiuterà null a meno che non sia dichiarato annullabile, e un validatore ve lo dirà al record esatto.
Il lettore Parquet è una libreria caricata su richiesta da questa pagina e il JSON viene scritto lì, quindi nessuna richiesta trasporta il file.
Ogni riga viene materializzata prima che qualcosa venga scritto, quindi la memoria è il tetto. Per una tabella grande, DuckDB scriverà NDJSON in un’unica istruzione senza tenere nulla in memoria.
| Parquet | NDJSON | |
|---|---|---|
| Nome completo | Apache Parquet | Newline-Delimited JSON |
| Estensione del file | .parquet | .ndjson, .jsonl |
| Tipo di media | application/vnd.apache.parquet | application/x-ndjson |
| 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 | CSV, JSON | JSON, CSV |
Non si scarta nulla. Parquet e NDJSON salvano il contenuto senza perdita: la conversione cambia la confezione, non la qualità, e si può ripetere senza che i danni si accumulino.
NDJSON è un formato di lavoro e Parquet è un formato finito. Torna testo modificabile invece di un'immagine della pagina, che di solito è il motivo della conversione e insieme il suo limite.
pandas legge sia Parquet sia NDJSON, quindi puoi confrontare il risultato con l'originale senza un secondo programma.
NDJSON risale al 2013. jq e pandas 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.
No. NDJSON conserva lo stesso contenuto senza buttare via niente: il risultato è identico in qualità all’originale.
Non si scarta nulla. Parquet e NDJSON salvano il contenuto senza perdita: la conversione cambia la confezione, non la qualità, e si può ripetere senza che i danni si accumulino.
NDJSON è un formato di lavoro e Parquet è un formato finito. Torna testo modificabile invece di un'immagine della pagina, che di solito è il motivo della conversione e insieme il suo limite.