Abra ou cole um arquivo CSV e clique em Baixar Parquet. Por padrão, toda coluna é uma STRING UTF-8 que aceita nulos, então IDs como 000917 mantêm os zeros, e células vazias viram null. Escolha Detectar números e true/false para gravar colunas INT64, DOUBLE e BOOLEAN quando todos os valores couberem nesses tipos. O arquivo é gerado no seu navegador por um gravador Parquet em JavaScript; nada é enviado.
Como converter CSV em Parquet
- Abra um arquivo
.csv,.tsvou.txt, arraste-o para a ferramenta ou cole as linhas. Confira a tabela na aba Entrada; se precisar, ajuste o delimitador, a linha de cabeçalho ou a codificação em Configurações de importação. - Escolha os Tipos de valor, a Compactação, se quer Gravar texto vazio como null e as Linhas por grupo de linhas.
- Clique em Baixar Parquet e leia o arquivo
.parquetcom DuckDB, pandas, Polars, Spark ou qualquer outro leitor de Parquet.
Para converter muitos arquivos com as mesmas configurações, escolha Lote: converter vários arquivos. Cada arquivo vira um Parquet próprio, e todos são baixados juntos em um único ZIP. No modo em lote, cada arquivo pode ter no máximo 25 MB.
Schema e tipos de coluna
Os nomes das colunas vêm da linha de cabeçalho exatamente como foram escritos. Um cabeçalho em branco vira Column 3 e um repetido vira name (2), para que cada coluna do Parquet tenha nome único. Todas as colunas são opcionais (aceitam nulos).
| Manter todos os valores como texto | É o padrão. Toda coluna é BYTE_ARRAY anotada como string UTF-8 e guarda cada valor byte a byte, incluindo zeros à esquerda, 1,5, N/A e formatos de data. |
|---|---|
| Números inteiros (com detecção) | INT64 quando todos os valores preenchidos são inteiros sem zeros à esquerda, de −9.007.199.254.740.991 a 9.007.199.254.740.991. Inteiros maiores mantêm a coluna como texto. |
| Decimais (com detecção) | DOUBLE quando todos os valores são decimais simples com até 15 algarismos significativos, para que sobrevivam à conversão. Uma coluna que mistura 12 e 2.5 vira DOUBLE. |
| true / false (com detecção) | BOOLEAN quando todos os valores são true ou false, em maiúsculas ou minúsculas. |
| Datas e data/hora | Continuam STRING nos dois modos, por exemplo 2026-03-01T08:00:00Z. Converta o tipo no seu mecanismo de consulta, como CAST(reading_at AS TIMESTAMP) no DuckDB. |
Em colunas tipadas, uma célula vazia é sempre null. Em colunas de string, Gravar texto vazio como null (ativada por padrão) decide se a célula vazia vira null ou uma string vazia "".
Compactação e grupos de linhas
| Snappy (rápido, padrão mais comum) | É o codec padrão. Todos os leitores de Parquet mais usados aceitam. |
|---|---|
| Gzip (menor) | Costuma gerar um arquivo menor que o Snappy. Alguns leitores mais simples não incluem suporte a gzip. |
| Nenhuma | Sem compactação, para depuração ou para ferramentas sem descompactador. |
| Linhas por grupo de linhas | Padrão 100.000, entre 1.000 e 1.000.000. Como a área de trabalho do navegador comporta até 100.000 linhas, o padrão grava um único grupo de linhas; defina um valor menor para ter vários grupos, que os leitores podem pular ou ler em paralelo. |
O arquivo também registra nos metadados o gravador (hyparquet) e uma chave created_by_app.
Problemas comuns ao converter CSV para Parquet
- Uma coluna numérica saiu como STRING. Ou a opção Manter todos os valores como texto está selecionada, ou algum valor não é um número simples, como
1,234,12 kg,007ou um decimal de 16 dígitos. Encontre-o com o perfil das colunas ou no visualizador de CSV. - Os IDs perderam os zeros à esquerda em outra ferramenta. Este conversor nunca torna numérica uma coluna com zeros à esquerda. Se os IDs mudaram, o CSV provavelmente foi aberto e salvo em uma planilha antes da conversão; confira o arquivo de origem no visualizador de CSV.
- Ficou tudo em uma coluna só. O delimitador foi detectado errado; escolha-o em Configurações de importação.
- O arquivo é grande demais para esta ferramenta. A conversão para Parquet aceita arquivos de até 25 MB, 100.000 linhas, 250 colunas e 2 milhões de células. Divida o CSV e converta as partes, ou compacte o CSV com gzip se você só precisa de um download menor.
Limites e privacidade
O CSV precisa abrir na área de trabalho do navegador: até 25 MB, 100.000 linhas, 250 colunas e 2 milhões de células. O arquivo Parquet é montado na memória em uma única passada.
O gravador é o hyparquet-writer, uma biblioteca em JavaScript puro carregada só quando você converte; não há WebAssembly nem etapa no servidor. Ele roda em um worker em segundo plano nesta aba, então a página continua respondendo e Cancelar interrompe o processo. O CSV nunca é enviado a um servidor. Para ter um arquivo de banco de dados que aceita consultas, use CSV para SQLite.
Exemplo: leituras de sensores lidas de volta com PyArrow
Leituras de sensores com IDs que começam em zero, data/hora ISO, células vazias e uma vírgula entre aspas, convertidas com Detectar números e true/false e a compactação Snappy padrão, depois lidas de volta com PyArrow. temp_c virou DOUBLE e ok virou BOOLEAN; sensor_id e reading_at continuaram strings. Com o padrão Manter todos os valores como texto, as cinco colunas são string e ok mantém TRUE como foi 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'}Perguntas frequentes
O meu CSV é enviado para ser convertido?
Não. O arquivo Parquet é gravado por uma biblioteca JavaScript em um worker na aba do seu navegador, e o download é gerado localmente.
Por que as datas não são gravadas como DATE ou TIMESTAMP do Parquet?
Datas em CSV aparecem em muitos formatos e fusos horários, e adivinhá-los em silêncio pode deslocar os valores. Elas são gravadas como strings, exatamente como no arquivo; converta o tipo no DuckDB, no Spark ou no pandas, onde você escolhe o formato e o fuso.
Qual compactação devo escolher?
O Snappy funciona com praticamente todo leitor de Parquet. Escolha gzip quando o tamanho do arquivo pesar mais e o seu leitor tiver suporte, e nenhuma só para depuração.