Cookies de estadística y publicidad
Usamos cookies de estadística y de publicidad, y ambas van a Google. Si rechazas, para ti no cambia nada visible.Ir a la página de privacidad
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.
Hasta 100 archivos a la vez. Mezclar formatos no es problema.
Se convierten uno tras otro y vuelven juntos en un ZIP.
Parquet a TSV
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.
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.
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.
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.
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.
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.
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 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.
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.
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 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.
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.
| Parquet | TSV | |
|---|---|---|
| Nombre completo | Apache Parquet | Tab-Separated Values |
| Extensión de archivo | .parquet | .tsv, .tab |
| Tipo de medio | application/vnd.apache.parquet | text/tab-separated-values |
| Compresión | Sin pérdida — no se descarta nada | — |
| Publicado por primera vez | 2013 | 1993 |
| Publicado por | Apache Software Foundation | — |
| Especificación | — | IANA text/tab-separated-values |
| Licencia | Estándar abierto | Estándar abierto |
| Situación actual | Vigente | Vigente |
| Se abre en el navegador | Ningún navegador | Ningún navegador |
| Considerado en su lugar | CSV, JSON | CSV, JSON |
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.
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.
pandas lee tanto Parquet como TSV, así que puedes comparar el resultado con el original sin un segundo programa.
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.
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.
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.
No. TSV guarda el mismo contenido sin tirar nada: el resultado es idéntico en calidad al original.
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.
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.