Convertire TSV in Parquet

Qui converti TSV 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.
  • Senza perdita Non si butta via niente. Parquet conserva esattamente ciò che TSV teneva.
  • Limite di dimensione Fino a 100 MB per file, gratis e senza account.

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

Le tabelle separate da tab che producono gli strumenti di analisi

Molto output scientifico e analitico è separato da tab per convenzione piuttosto che per scelta: matrici di espressione, riepiloghi di varianti, tabelle di annotazione, log di strumenti, export di piattaforme pubblicitarie. Il tab fu scelto perché le colonne descrittive sono piene di virgole e punto e virgola.

È un formato scarso contro cui calcolare ripetutamente. Ogni lettura analizza ogni byte, ogni strumento ri-deriva i tipi di colonna e li deriva leggermente in modo diverso, e una tabella che verrà filtrata cento volte paga il costo di analisi cento volte. Convertire una volta in un file colonnare tipizzato sposta quel lavoro all’inizio.

NA, un punto singolo e un trattino: i sentinella che ritipizzano una colonna

Una colonna Parquet contiene un tipo per tutti i suoi valori. Lo scrittore qui legge l’intera colonna prima di decidere, e la regola è deliberatamente severa: se ogni valore non vuoto è un booleano la colonna è BOOLEAN, se sono tutti interi nell’intervallo a 32 bit è INT32, se sono tutti numeri è DOUBLE, e se un singolo valore non è nessuno di questi l’intera colonna è una stringa.

Le tabelle di analisi sono piene di valori che non sono nessuno di questi. NA è la convenzione R e appare in quasi ogni tabella toccata da R. Un punto singolo è la convenzione VCF e GTF per un campo mancante. Uno qualunque di questi in qualunque riga trasforma una colonna di dieci milioni di numeri in una colonna di dieci milioni di stringhe.

Perché lo scrittore rifiuta di scartare il valore invece

L’alternativa allettante è tipizzare la colonna dalla prima riga, o dalle prime mille, e scrivere come null qualunque cosa disaccordi. La maggior parte degli strumenti fa esattamente questo. Produce un file valido, che carica senza avviso, e ha silenziosamente cancellato ogni riga dove appariva il marcatore.

Nessuno lo scopre finché un conteggio non torna corto, e a quel punto il file è di solito già stato unito ad altri tre. Una colonna stringa è rumorosa: si vede appena guardate lo schema, può essere convertita in un’espressione, e la conversione vi dirà precisamente quali valori non potevano essere convertiti.

Trovare il sentinella prima di convertire

Serve un comando. cut -f7 table.tsv | sort -u | head -50 stampa i valori distinti della settima colonna, e il marcatore sarà ovvio tra loro. Farlo su ogni colonna di una tabella larga è un ciclo; farlo sulle tre colonne su cui filtrate davvero di solito basta.

La correzione è nella sorgente, non nel convertitore: sostituite il marcatore con un campo genuinamente vuoto. I null sono esclusi dall’inferenza di tipo, quindi una colonna di numeri con vuoti reali passa come colonna numerica con null dentro.

Una tabella larga duemila colonne

Le tabelle larghe sono dove il layout colonnare guadagna di più. Una matrice di espressione con una riga per gene e una colonna per campione è memorizzata una colonna dopo l’altra piuttosto che una riga dopo l’altra — quindi una query che nomina quattro colonne legge quattro colonne di byte e non tocca il resto.

Contro un file separato da tab la stessa query deve leggere ogni byte di ogni riga per trovare i campi che vuole, perché l’unico modo per localizzare il diciassettesimo campo di una riga è contare diciassette tab. Quella differenza non diminuisce con la crescita della tabella; si allarga.

Precisione, e perché numeri interi possono finire come DOUBLE

Lo scrittore emette INT32 solo dove ogni valore nella colonna sta nell’intervallo a 32 bit. Oltre, la colonna diventa DOUBLE piuttosto che INT64, il che sorprende chi sa che Parquet ha un tipo intero a 64 bit.

La ragione è onestà su ciò che è arrivato. I valori passano attraverso numeri JavaScript in ingresso, che portano 53 bit di precisione intera, quindi una coordinata genomica oltre quel punto è già stata arrotondata prima che lo scrittore la veda. Dichiararla INT64 prometterebbe un’esattezza che il valore non ha più.

Cosa finisce registrato sulla vostra tabella

Il footer del file contiene i nomi delle colonne come scritti dalla riga di intestazione, il tipo di ciascuna, e il conteggio righe, e i dati stessi sono scritti in gruppi di righe tra mille e centomila con statistiche per colonna allegate. Ogni colonna è compressa da sola con Snappy.

Per una tabella di analisi è lì che va la dimensione. Una colonna cromosoma, un identificatore campione, un filamento, una categoria — ognuna ha una manciata di valori distinti ripetuti su milioni di righe, e ciascuna collassa a quasi nulla. Una colonna di misurazioni continue no.

Interrogare il risultato in DuckDB senza caricarlo

DuckDB legge il file sul posto: una clausola FROM che nomina il percorso basta, nessun passo di importazione e nessuna definizione tabella. DESCRIBE SELECT * FROM "table.parquet" stampa lo schema dedotto, la prima cosa da guardare.

pandas lo legge in una chiamata e Spark lo tratta come formato tabella nativo. In tutti e tre, la mossa corretta dopo una sorpresa è interrogare i valori incriminati piuttosto che convertire alla cieca — una conversione forzata annullerà qualunque cosa non stia, esattamente il fallimento che lo scrittore ha rifiutato di commettere per vostro conto.

Dove avviene la conversione e quanto grande una tabella accetta

Entrambe le metà girano su questa pagina: il parser separato da tab è JavaScript ordinario e lo scrittore Parquet è una libreria caricata su richiesta. Nulla viene caricato, il che conta per un set di risultati non pubblicato o misurazioni non vostre da distribuire.

L’intera tabella viene tenuta in memoria mentre viene trasposta in colonne, quindi decine di megabyte convertono senza cerimonie e centinaia è dove una scheda browser comincia a faticare. Una matrice multi-gigabyte appartiene a DuckDB.

Quando il file separato da tab dovrebbe restare com’è

Tenetelo se una persona o uno script deve leggerlo come testo. Parquet è binario, non modificabile, e il registro registra il suo supporto come discontinuo — un collaboratore senza gli strumenti giusti non può aprirlo affatto.

Tenetelo anche se il file è un artefatto pubblicato. Le tabelle separate da tab sono ciò che riviste, repository e dataset pubblici accettano, e saranno ancora leggibili senza dipendenze fra vent’anni. Convertite in Parquet per la copia di lavoro.

Come convertire TSV in Parquet

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

TSV o Parquet: cosa cambia

TSV a confronto con Parquet
TSVParquet
Nome completoTab-Separated ValuesApache Parquet
Estensione del file.tsv, .tab.parquet
Tipo di mediatext/tab-separated-valuesapplication/vnd.apache.parquet
CompressioneSenza perdita — non si butta via niente
Prima pubblicazione19932013
Pubblicato daApache Software Foundation
SpecificaIANA text/tab-separated-values
LicenzaStandard apertoStandard aperto
Situazione attualeAttualeAttuale
Si apre nel browserNessun browserNessun browser
Valutato al suo postoCSV, JSONCSV, JSON

Che cosa resta

Non si scarta nulla. TSV e Parquet salvano il contenuto senza perdita: la conversione cambia la confezione, non la qualità, e si può ripetere senza che i danni si accumulino.

Aprire il risultato

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

A che cosa serve ciascun formato

TSV è stato pubblicato nel 1993. È descritto in IANA text/tab-separated-values, 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.

TSV è stato pubblicato nel 1993 e Parquet nel 2013. Il più vecchio è in genere il file più sicuro da consegnare; il più recente fa lo stesso lavoro con meno byte.

Da TSV a Parquet: domande frequenti

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

No. Parquet conserva lo stesso contenuto senza buttare via niente: il risultato è identico in qualità all’originale.

La conversione da TSV a Parquet è senza perdita?

Non si scarta nulla. TSV e Parquet salvano il contenuto senza perdita: la conversione cambia la confezione, non la qualità, e si può ripetere senza che i danni si accumulino.

Altro su questi formati