Ir para a ferramenta
ViewCSV
Sem upload de arquivos

Converter CSV em Parquet

orders.csv· DADOS DE EXEMPLO15 linhas · 8 colunas
Tipos de valor
Colunas de texto são gravadas como STRING UTF-8. A detecção grava colunas INT64, DOUBLE e BOOLEAN quando todos os valores se encaixam.
orders.csv
#order_idcustomercityproductquantityunit_priceorder_datestatus
1001041Laura CostaPorto AlegreDesk lamp6224.922026-01-15shipped
2001042Arthur AlvesFortalezaMonitor 27"1172.722026-02-11refunded
3001043Miguel CostaRio de JaneiroCoffee beans 1kg7165.862026-03-07shipped
4001044Gael RodriguesBelo HorizonteMonitor 27"1131.362026-04-23shipped
5001045Alice OliveiraPorto AlegreUSB-C cable8·2026-05-25shipped
6001046Helena SouzaSalvadorCoffee beans 1kg171.082026-06-08refunded
7001047 Laura Gomes Porto AlegreCoffee beans 1kg389.842026-07-16pending
8001048Théo OliveiraFortalezaNotebook A5749.502026-08-26shipped
9001049Helena RodriguesSalvadorDesk lamp354.272026-09-27paid
10001050Heitor SantosCuritibaDesk lamp6138.902026-01-05pending
11001051Helena FerreiraCuritibaUSB-C cable76.102026-02-03refunded
12001052Valentina PereiraBelo HorizonteChair, ergonomic3106.722026-03-09shipped
13001053Laura AlvesFortalezaNotebook A56239.222026-04-12pending
14001054Valentina SouzaSão PauloChair, ergonomic9154.442026-05-25pending
15001043Miguel CostaRio de JaneiroCoffee beans 1kg7165.862026-03-07shipped

15 linhas · 1 arquivo Gravado no seu navegador por um gravador Parquet em JavaScript; nada é enviado.

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

  1. Abra um arquivo .csv, .tsv ou .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.
  2. Escolha os Tipos de valor, a Compactação, se quer Gravar texto vazio como null e as Linhas por grupo de linhas.
  3. Clique em Baixar Parquet e leia o arquivo .parquet com 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/horaContinuam 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.
NenhumaSem compactação, para depuração ou para ferramentas sem descompactador.
Linhas por grupo de linhasPadrã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, 007 ou 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.

CSV
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"
Parquet (lido com PyArrow)
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.

Padrões e referências