Convertir Parquet a TSV

Aquí puedes convertir Parquet a TSV gratis y sin cuenta: suelta el archivo arriba y en un par de segundos tienes el resultado listo para descargar. La conversión ocurre en tu propio navegador, así que el archivo no se sube nunca. Funciona igual en Windows, macOS y Linux que en iPhone y Android, y sigue funcionando aunque cortes la conexión.

  • Dónde se ejecuta En tu navegador. El archivo no se sube.
  • Sin pérdida No se pierde nada. TSV contiene exactamente lo que contenía Parquet.
  • Límite de tamaño Hasta 100 MB por archivo, gratis y sin cuenta.

Hasta 100 archivos a la vez. Mezclar formatos no es problema.

Un Parquet no es algo que se pueda mirar

Es un contenedor binario. `head` sobre uno imprime cuatro bytes y a continuación una pantalla de ruido, `grep` no encuentra nada fiable porque los valores vienen comprimidos y codificados por diccionario, y `wc -l` devuelve un número que no guarda ninguna relación con el número de filas. El archivo está diseñado para que lo lea un motor, y si la máquina no tiene motor, el archivo es opaco.

Esa es la situación para la que existe esta conversión: un extracto en un servidor, un portátil sin permisos de administración, un contenedor sin nada instalado, o un archivo que alguien te ha mandado con una pregunta que hay que responder en los próximos dos minutos. Convertirlo en líneas es la vía más rápida para poder responder cualquier cosa sobre él.

Por qué el tabulador es el delimitador de una tubería

Los valores de un extracto de datos están llenos de comas: direcciones, nombres de producto, texto libre, números escritos con la convención decimal de medio mundo. Un archivo separado por comas tiene que envolver todo eso entre comillas, y cada consumidor del archivo tiene que implementar bien el entrecomillado, las comillas escapadas y los saltos de línea dentro de un campo antes de poder encontrar el límite de una columna.

Los tabuladores están casi ausentes de ese tipo de datos, así que el delimitador y el contenido dejan de competir. Después de esta conversión, `cut -f3` encuentra la tercera columna, `awk -F"\t"` la encuentra, y `sort` con el tabulador como separador ordena por la segunda. Nada tiene que analizar nada; solo tiene que partir. Esa es toda la diferencia de fiabilidad entre los dos delimitadores.

El único valor que aún puede descolocar el conteo

La excepción es un tabulador dentro de un valor. Es más raro en datos que salen de un Parquet que en datos que salen de una hoja de cálculo, pero pasa: los campos de texto libre llevan lo que se pegara dentro en su momento. Cuando ocurre, el conversor escribe ese campo envuelto en comillas dobles, porque la alternativa es una fila que gana una columna en silencio.

Esa salida es correcta y un analizador de verdad la maneja. `cut -f` no: cuenta caracteres de tabulación y no ha oído hablar de una comilla, así que a partir de esa fila ve un campo de más y todo lo que viene detrás se desplaza. Si una tubería está dando resultados descuadrados en un puñado de filas de un millón, contar las comillas del archivo de salida te dice en un segundo si es por esto.

Las comas no se entrecomillan, y ese es el ahorro

Con el tabulador como delimitador, un valor que diga «Bogotá, Colombia» se escribe tal cual, sin una sola comilla en la línea. Es exactamente el motivo de elegir este destino en lugar del separado por comas cuando lo que va a leer el archivo es una herramienta que parte por un carácter.

La diferencia se nota al abrir el archivo. Un CSV de datos reales es una sucesión de comillas donde cuesta ver dónde acaba un campo; el mismo contenido con tabuladores se lee en columnas, sobre todo si lo pasas por `column -t`. Para una inspección rápida, la legibilidad a ojo vale tanto como la corrección del análisis.

Las fechas salen en una forma que ordena sola

Una columna de marca temporal se escribe como cadena ISO 8601, que es la única respuesta sensata en un formato sin tipo de fecha. Y tiene una propiedad que importa mucho en una consola: ordena cronológicamente con una ordenación léxica normal, porque los campos van del más significativo al menos.

`sort` sobre esa columna hace lo que querías decir, contar los diez primeros caracteres cuenta filas por día, y un filtro de rango es una comparación de cadenas. Nada de eso funciona con una fecha escrita en formato local, y nada funciona con un número de época sin hacer aritmética. Es uno de los pocos sitios donde convertir a texto vuelve una operación más fácil en vez de más difícil.

Lo anidado llega como JSON dentro del campo

Parquet guarda listas, estructuras y mapas de forma nativa. Una línea de texto no, así que una columna anidada se escribe como JSON dentro de su campo: una lista aparece entre corchetes y una estructura como un objeto con los nombres de sus miembros.

Eso es deliberadamente el formato que otra cosa sabe leer: extraer esa columna con `cut` y pasarla por `jq` saca el elemento que quieras de cada fila, y la anidación sobrevive el viaje en lugar de aplanarse en columnas cuyos nombres tendrías que averiguar. Como el campo no contiene ningún tabulador, no se le añade entrecomillado y la tubería sigue siendo simple. Las columnas binarias sin anotación de texto se escriben en hexadecimal minúsculo por una razón emparentada: es reversible, no lleva delimitadores y nadie lo confundirá con prosa.

Los nulos quedan como campos vacíos, y qué oculta eso

Un nulo se escribe como un campo vacío. Todas las filas conservan el mismo número de tabuladores, así que el archivo sigue siendo rectangular y las herramientas posicionales siguen alineadas, que es el comportamiento que necesitas.

También borra una distinción que el archivo de origen cuidaba. Parquet registra la nulabilidad por columna y separa un nulo de una cadena vacía; en la salida ambos son los mismos cero caracteres entre dos tabuladores. Si estás contando valores que faltan, un filtro por campo vacío cuenta los dos juntos y ninguna orden de consola puede volver a separarlos. Cuando eso importa, saca el recuento del origen con un motor de consulta y no del texto.

La cabecera es la unión de las columnas, no la primera fila

La lista de columnas se construye recorriendo todas las filas y quedándose con la unión de sus claves, en el orden en que aparecen por primera vez. No se toma del esquema ni de la primera fila, y esa decisión es la que evita que una columna que solo existe a partir de la fila cuatro mil desaparezca del archivo entero.

La consecuencia es una que conviene tener presente: el número de columnas del TSV no es necesariamente el número de columnas que declaraba el Parquet, y el orden es el de aparición. Si vas a alimentar un script que espera posiciones fijas, mira la cabecera del resultado antes de fijar los índices en vez de darlos por conocidos.

El esquema no está en el texto, así que léelo antes

Todo lo que el Parquet sabía sobre sus columnas —el tipo de cada una, el número de filas, las estadísticas por columna— vive en un pie, y nada de eso sobrevive a un archivo separado por tabuladores. La salida tiene una fila de nombres y a partir de ahí son caracteres.

Si tienes alguna manera de leer el esquema, léelo antes de convertir y apúntalo. En DuckDB, describir la consulta sobre el archivo lo imprime en una sola instrucción. Cuando no tienes nada, el propio texto es la única prueba disponible, y lo sensato es mirar unos cuantos valores distintos por columna en lugar de suponer que una columna de dígitos es una cantidad.

Cuánto texto produce un Parquet pequeño

Parquet viene comprimido y codificado por diccionario, así que el texto al que se expande es habitualmente varias veces el tamaño del archivo y con frecuencia mucho más. Una columna de códigos de estado repetidos no costaba casi nada en el origen y cuesta una copia entera por fila en la salida.

Merece la pena estimarlo antes de convertir un archivo que no has mirado, porque la tabla expandida se sostiene en memoria durante la conversión. Un extracto de cien megabytes puede producir bastante más de cien megabytes de texto, y el techo llega antes de lo que sugiere el tamaño en disco. El tope declarado es de 100 MB por archivo, y en este par la memoria del equipo suele avisar primero.

El extracto se lee aquí y no se envía a ninguna parte

El lector de Parquet es una biblioteca que la página carga cuando hace falta y la escritura es JavaScript corriente. Ninguna petición lleva el archivo, así que un extracto tomado de la mitad de una plataforma de datos —normalmente la versión sin agregar y sin enmascarar— no se convierte en una copia en el servidor de otra persona solo para poder leerlo.

No hay cuenta ni cola, y las conversiones que corren en el navegador no cuentan contra ningún cupo, porque no consumen capacidad nuestra. Es la diferencia entre poder responder la pregunta ahora y tener que abrir un ticket para justificar por qué un extracto salió de la red.

Cuándo instalar DuckDB en lugar de convertir

Si puedes instalar algo, instala DuckDB. Lee el Parquet donde está sin paso de importación, imprime el esquema en una instrucción, responde la pregunta que de verdad tenías con una cláusula `WHERE` y no materializa nunca la tabla entera. Convertir a texto es estrictamente peor siempre que esa opción exista.

Esta conversión es para cuando no existe: una máquina cerrada, el portátil de un compañero, un archivo que llegó por correo, una pregunta de cinco minutos que no justifica montar nada. Y también es la elección correcta cuando el destino de verdad es una tubería de texto: un `awk` que ya está escrito, una comparación contra el volcado de ayer, o un pegado en algo que acepta datos delimitados por tabuladores.

Cómo convertir Parquet a TSV

  1. Suelta tu archivo Parquet en esta página, o haz clic para elegir uno.
  2. Elige TSV como destino. La conversión ocurre en tu navegador y el archivo no se sube.
  3. Descarga el archivo TSV terminado.

Parquet frente a TSV: qué cambia

Parquet frente a TSV
ParquetTSV
Nombre completoApache ParquetTab-Separated Values
Extensión de archivo.parquet.tsv, .tab
Tipo de medioapplication/vnd.apache.parquettext/tab-separated-values
CompresiónSin pérdida — no se descarta nada
Publicado por primera vez20131993
Publicado porApache Software Foundation
EspecificaciónIANA text/tab-separated-values
LicenciaEstándar abiertoEstándar abierto
Situación actualVigenteVigente
Se abre en el navegadorNingún navegadorNingún navegador
Considerado en su lugarCSV, JSONCSV, JSON

Qué se conserva

No se descarta nada. Parquet y TSV guardan su contenido sin pérdida, así que la conversión cambia el envoltorio y no la calidad, y puede repetirse sin que el daño se acumule.

Qué añade el formato de destino

TSV es un formato de trabajo y Parquet uno terminado. Vuelve texto editable en lugar de una imagen de la página, que suele ser el motivo de la conversión y también su límite.

Abrir el resultado

pandas lee tanto Parquet como TSV, así que puedes comparar el resultado con el original sin un segundo programa.

Para qué sirve cada formato

TSV es de 1993, recogido en IANA text/tab-separated-values. Microsoft Excel, LibreOffice Calc y pandas lo leen.

TSV se publicó en 1993 y Parquet en 2013. El más antiguo suele ser el archivo más seguro para entregar; el más reciente hace lo mismo con menos bytes.

De Parquet a TSV: preguntas frecuentes

¿Se sube a algún sitio mi archivo Parquet?

No. Esta conversión ocurre por completo en tu navegador, así que el archivo no sale de tu dispositivo. Puedes comprobarlo tú: abre la pestaña de red de las herramientas de desarrollo y convierte algo. Verás la propia página y las peticiones de estadística y publicidad con las que se paga este servicio, y ni una sola que lleve tu archivo. El motor de este par concreto es parquet-wasm, una compilación en WebAssembly del lector de Apache Arrow; tu navegador lo descarga una vez y lo guarda.

¿Convertir Parquet a TSV es gratis?

Sí. Sin cuenta, sin marca de agua y sin cupo diario que se gaste: se ejecuta en tu propio equipo, así que puedes volver tantas veces como quieras. El navegador procesa archivos de hasta 100 MB, 100 a la vez. parquet-wasm se descarga en tu equipo y se ejecuta allí, y por eso no hay contador.

¿Se pierde calidad al convertir Parquet a TSV?

No. TSV guarda el mismo contenido sin tirar nada: el resultado es idéntico en calidad al original.

¿Es sin pérdida la conversión de Parquet a TSV?

No se descarta nada. Parquet y TSV guardan su contenido sin pérdida, así que la conversión cambia el envoltorio y no la calidad, y puede repetirse sin que el daño se acumule.

¿Se puede editar el archivo TSV después?

TSV es un formato de trabajo y Parquet uno terminado. Vuelve texto editable en lugar de una imagen de la página, que suele ser el motivo de la conversión y también su límite.

Más sobre estos formatos