Abre o pega un archivo CSV y pulsa «Descargar Parquet». De forma predeterminada todas las columnas son STRING UTF-8 que admiten nulos, así que los identificadores como 000917 conservan sus ceros y las celdas vacías pasan a ser null. Elige Detectar números y true/false para escribir columnas INT64, DOUBLE y BOOLEAN donde todos los valores encajen. El archivo lo escribe en tu navegador un generador de Parquet en JavaScript; no se sube nada.
Cómo convertir CSV a Parquet
- Abre un archivo
.csv,.tsvo.txt, suéltalo sobre la herramienta o pega las filas. Revisa la tabla en Entrada; si hace falta, ajusta el delimitador, la fila de encabezados o la codificación en Configuración de importación. - Elige los Tipos de valor, la Compresión, si quieres Escribir el texto vacío como null y las Filas por grupo de filas.
- Pulsa «Descargar Parquet» y lee el archivo
.parquetcon DuckDB, pandas, Polars, Spark o cualquier otro lector de Parquet.
Para convertir muchos archivos con la misma configuración, elige Por lotes: convertir varios archivos. Cada archivo se convierte en su propio archivo Parquet y todos se descargan juntos en un único ZIP. En un lote, cada archivo debe ocupar 25 MB como máximo.
Esquema y tipos de columna
Los nombres de columna salen de la fila de encabezados tal como están escritos. Un encabezado en blanco pasa a ser Column 3 y uno repetido, name (2), de modo que cada columna Parquet tiene un nombre único. Todas las columnas son opcionales (admiten nulos).
| Mantener todos los valores como texto | Es la opción predeterminada. Todas las columnas son BYTE_ARRAY anotadas como cadena UTF-8 y guardan cada valor byte a byte, con ceros a la izquierda, 1,5, N/A y formatos de fecha incluidos. |
|---|---|
| Números enteros (con detección) | INT64 cuando todos los valores no vacíos son números enteros sin ceros a la izquierda, entre −9 007 199 254 740 991 y 9 007 199 254 740 991. Con enteros mayores, la columna se queda como texto. |
| Decimales (con detección) | DOUBLE cuando todos los valores son decimales simples con 15 cifras significativas como máximo, para que no cambien en la conversión. Una columna que mezcla 12 y 2.5 pasa a DOUBLE. |
| true / false (con detección) | BOOLEAN cuando todos los valores son true o false, en mayúsculas o minúsculas. |
| Fechas y marcas de tiempo | Se quedan como STRING en ambos modos, por ejemplo 2026-03-01T08:00:00Z. Conviértelas en tu motor de consultas, por ejemplo con CAST(reading_at AS TIMESTAMP) en DuckDB. |
En las columnas con tipo, una celda vacía siempre es null. En las columnas de texto, Escribir el texto vacío como null (activada de forma predeterminada) decide si una celda vacía pasa a null o a una cadena vacía "".
Compresión y grupos de filas
| Snappy (rápida, la habitual) | El códec predeterminado. Lo admiten todos los lectores de Parquet habituales. |
|---|---|
| Gzip (más pequeña) | Suele dar un archivo más pequeño que Snappy. Algunos lectores ligeros no incluyen compatibilidad con gzip. |
| Ninguna | Sin compresión, para depurar o para herramientas que no tienen descompresor. |
| Filas por grupo de filas | 100 000 de forma predeterminada, entre 1000 y 1 000 000. Como el espacio de trabajo del navegador admite hasta 100 000 filas, con el valor predeterminado se escribe un solo grupo de filas; pon un valor menor para obtener varios grupos que los lectores puedan saltarse o leer en paralelo. |
El archivo también registra en sus metadatos el generador (hyparquet) y una clave created_by_app.
Problemas habituales al convertir CSV a Parquet
- Una columna numérica sale como STRING: o bien está elegida Mantener todos los valores como texto, o algún valor no es un número simple, como
1,234,12 kg,007o un decimal de 16 dígitos. Búscalo con el perfil de columnas o en el visor de CSV. - Los identificadores perdieron los ceros a la izquierda en otra herramienta: este conversor nunca convierte en numérica una columna con ceros a la izquierda. Si los identificadores cambiaron, lo más probable es que el CSV se abriera y guardara en una hoja de cálculo antes de convertirlo; revisa el archivo de origen en el visor de CSV.
- Todo está en una sola columna: el delimitador se detectó mal. Elígelo en Configuración de importación.
- El archivo es demasiado grande para esta herramienta: la conversión a Parquet admite archivos de hasta 25 MB, 100 000 filas, 250 columnas y 2 millones de celdas. Divide el CSV y convierte las partes, o comprime el CSV con gzip si solo necesitas una descarga más pequeña.
Límites y privacidad
El CSV tiene que poder abrirse en el espacio de trabajo del navegador: hasta 25 MB, 100 000 filas, 250 columnas y 2 millones de celdas. El archivo Parquet se construye en memoria en una sola pasada.
El generador es hyparquet-writer, una biblioteca escrita solo en JavaScript que se carga únicamente al convertir; no hay WebAssembly ni ningún paso en un servidor. Se ejecuta en un proceso en segundo plano dentro de esta pestaña, así que la página sigue respondiendo y Cancelar lo detiene. El CSV nunca se envía a un servidor. Si prefieres un archivo de base de datos que se pueda consultar, usa CSV a SQLite.
Ejemplo: lecturas de sensores leídas de nuevo con PyArrow
Lecturas de sensores con identificadores con ceros a la izquierda, marcas de tiempo ISO, celdas vacías y una coma entre comillas, convertidas con Detectar números y true/false y la compresión Snappy predeterminada, y leídas después con PyArrow. temp_c pasó a DOUBLE y ok a BOOLEAN; sensor_id y reading_at se quedaron como cadenas. Con la opción predeterminada, Mantener todos los valores como texto, las cinco columnas son string y ok conserva TRUE tal como está escrito.
sensor_id,reading_at,temp_c,ok,site 000917,2026-03-01T08:00:00Z,21.5,true,Lab 2 000918,2026-03-01T08:05:00Z,,false, 000919,2026-03-01T08:10:00Z,-3,TRUE,"Roof, north"
schema:
sensor_id: string
reading_at: string
temp_c: double
ok: bool
site: string
rows: 3, row groups: 1, compression: SNAPPY
{'sensor_id': '000917', 'reading_at': '2026-03-01T08:00:00Z', 'temp_c': 21.5, 'ok': True, 'site': 'Lab 2'}
{'sensor_id': '000918', 'reading_at': '2026-03-01T08:05:00Z', 'temp_c': None, 'ok': False, 'site': None}
{'sensor_id': '000919', 'reading_at': '2026-03-01T08:10:00Z', 'temp_c': -3.0, 'ok': True, 'site': 'Roof, north'}Preguntas frecuentes
¿Se sube mi CSV para convertirlo?
No. El archivo Parquet lo escribe una biblioteca de JavaScript en un proceso en segundo plano de la pestaña de tu navegador, y la descarga se crea localmente.
¿Por qué las fechas no se escriben como DATE o TIMESTAMP de Parquet?
Las fechas de un CSV llegan en muchos formatos y zonas horarias, y adivinarlas sin avisar puede desplazar los valores. Se escriben como cadenas exactamente igual que en el archivo; conviértelas en DuckDB, Spark o pandas, donde eliges tú el formato y la zona.
¿Qué compresión elijo?
Snappy funciona con prácticamente cualquier lector de Parquet. Elige gzip cuando el tamaño del archivo importe más y tu lector lo admita, y sin compresión solo para depurar.