Cookies para estatística e publicidade
Usamos cookies de estatística e de publicidade, ambos enviados ao Google. Recusar não muda nada do que você vê.Ler a página de privacidade
Aqui você converte XLSX para Parquet de graça e sem conta: solte o arquivo acima e em poucos segundos o resultado está pronto para baixar. A conversão acontece dentro do seu próprio navegador, então o arquivo nunca é enviado. Funciona igual no Windows, no macOS e no Linux e também no iPhone e no Android, e continua funcionando mesmo se você cortar a conexão.
Até 100 arquivos de uma vez. Formatos misturados não são problema.
Eles são convertidos um após o outro e baixados juntos em um ZIP.
XLSX para Parquet
Todo outro destino que uma planilha tem guarda um registro atrás do outro. O Parquet guarda um campo atrás do outro: as cinquenta mil datas de pedido juntas, depois as cinquenta mil cidades, depois todos os valores. Não é uma preferência de formatação, é o motivo inteiro de o formato existir.
A consequência aparece na primeira consulta. Uma pergunta que lê dois campos de duzentos toca apenas os bytes desses dois em vez de cada linha, e uma coluna de valores repetidos comprime muito mais forte que os mesmos valores espalhados por linhas. Converter uma planilha para isso é, portanto, tanto uma transposição quanto uma serialização.
O tipo é inferido a partir dos valores em vez de declarado, porque uma planilha não carrega esquema. Cada coluna é examinada por inteiro: se todo valor não vazio é booleano, vira BOOLEAN; se todos são números inteiros dentro da faixa de 32 bits, vira INT32; se são números mas nem todos inteiros, vira DOUBLE; qualquer outra coisa vira string.
Nulos não participam. Uma coluna de números com lacunas continua sendo uma coluna numérica, com as lacunas escritas como nulas. A inferência lê a coluna inteira antes de decidir em vez de amostrar, o que custa uma passagem pelo dado e remove uma categoria inteira de surpresa.
Uma coluna de CEPs que começa com cinco mil entradas numéricas e depois contém "SW1A 1AA" é uma coluna de string, e as entradas numéricas são escritas como string também. O mesmo vale para uma coluna de quantidade com "n/a" nela, ou uma coluna de ID onde alguém digitou uma nota.
A alternativa tentadora — pegar o tipo da primeira linha e anular o que discorda — produz um arquivo válido, que carrega sem reclamar, e apagou silenciosamente os valores que não encaixaram. Ninguém descobre isso até uma contagem voltar menor. Uma coluna de string é visível, convertível numa expressão só, e nunca perde uma linha silenciosamente.
O Parquet tem um tipo inteiro de 64 bits e não é usado aqui. Os valores chegam da planilha como números JavaScript, que guardam 53 bits de precisão inteira, então qualquer coisa já passou por esse limite antes de o gravador ver.
Escrever tal valor como INT64 prometeria uma exatidão que o número não tem mais, e a falha seria invisível: uma referência de pedido errada por um parece uma referência de pedido normal. DOUBLE é a declaração honesta do que de fato se sabe. Se seus dados têm identificadores além de nove quatrilhões, guarde como texto na planilha antes de converter.
Numa planilha de cinquenta mil linhas e seis colunas — um id de pedido, um código de produto, uma cidade, uma quantidade, um preço e uma flag — o arquivo Parquet chegou a 301 KB. Os mesmos dados eram cerca de 4,3 MB como .xlsx e 1,8 MB escritos como texto separado por tabulação.
A diferença não é só compressão. Valores repetidos numa coluna são guardados uma vez e referenciados, motivo de as colunas de cidade e código de produto custarem quase nada. Espere uma economia grande em dado operacional e modesta numa planilha majoritariamente prosa distinta.
O que uma planilha guarda numa célula de data é um número e um formato de exibição. A conversão escreve o número, então 1º de janeiro de 2024 vira 45292, contado a partir do fim de dezembro de 1899, e a coluna é tipada como um inteiro comum.
Isso significa que não há semântica de timestamp na saída, e um motor de consulta vai tratar a coluna como o que ela é: um inteiro. Aplicar o calendário é uma expressão de uma linha só onde você consulta — somar a contagem de dias à data-época — e fazer isso ali é melhor que reformatar a planilha para texto primeiro.
Nada de especial é necessário. O DuckDB lê o arquivo direto numa cláusula FROM, o pandas lê com uma chamada só, e o Spark e os motores de consulta construídos sobre ele tratam como um formato de tabela nativo. O arquivo começa e termina com os quatro bytes PAR1, o jeito de qualquer um reconhecê-lo antes de ler o rodapé.
A primeira coisa a fazer depois de carregar é olhar os tipos inferidos em vez das primeiras dez linhas. Uma coluna que você esperava numérica e que chegou como texto está dizendo algo verdadeiro sobre a planilha, e é bem mais barato saber isso agora que depois de o arquivo ter sido unido a outros três.
A conversão lê a primeira planilha da pasta de trabalho. O Parquet guarda uma tabela com um esquema, então uma pasta com várias abas não pode ser representada num arquivo único sem inventar uma fusão que ninguém pediu, e pegar a primeira aba é a única escolha que não faz isso.
Para uma pasta de trabalho onde várias abas importam, converta cada uma separadamente e deixe o motor de consulta juntar de novo. É o arranjo para o qual esses motores são construídos — vários arquivos, lidos juntos, filtrados na carga — e produz um resultado melhor que uma aba única com uma coluna discriminadora colada.
As duas metades rodam no seu navegador: o leitor de planilha e o gravador de Parquet são bibliotecas carregadas sob demanda por esta página, e nenhuma requisição carrega a pasta de trabalho a lugar nenhum. Para uma exportação de dado de cliente ou financeiro, isso costuma ser o fator decisivo.
O limite é memória, não um plano. A planilha é lida em linhas, transposta em colunas e escrita, então a tabela inteira existe de uma vez; dezenas de megabytes é rotina e centenas é onde uma aba de navegador começa a forçar.
| XLSX | Parquet | |
|---|---|---|
| Nome completo | Pasta de trabalho do Excel | Apache Parquet |
| Extensão do arquivo | .xlsx | .parquet |
| Tipo de mídia | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet | application/vnd.apache.parquet |
| Compressão | — | Sem perdas — nada é descartado |
| Publicado pela primeira vez | 2007 | 2013 |
| Publicado por | Microsoft | Apache Software Foundation |
| Especificação | ECMA-376 | — |
| Licença | Padrão aberto | Padrão aberto |
| Situação hoje | Atual | Atual |
| Abre no navegador | Nenhum navegador | Nenhum navegador |
| Considerado no lugar | CSV, ODS | CSV, JSON |
Uma planilha vira uma página fixa. As fórmulas deixam de ser fórmulas e ficam só com o último resultado, e quem decide as quebras de página é a área de impressão, não a planilha — por isso um arquivo XLSX largo costuma chegar em Parquet espalhado por várias páginas.
Os programas de sempre não se cruzam: XLSX abre em Microsoft Excel, LibreOffice Calc e Google Sheets, e Parquet em pandas, Apache Spark e DuckDB, então quem receber o resultado precisa de algum do segundo grupo.
Os dois miram trabalhos diferentes: XLSX em a edição, Parquet em o arquivamento e mover dados entre programas. Vale pesar isso antes, porque o motivo de um existir costuma ser o motivo de o outro ser incômodo.
XLSX é o formato da Microsoft, publicado em 2007. Está descrito em ECMA-376, e vale conhecer se o arquivo precisa sobreviver à ferramenta que o escreveu.
Parquet vem da Apache Software Foundation é de 2013. pandas, Apache Spark e DuckDB leem o formato.
Não. Esta conversão acontece inteiramente no seu navegador, então o arquivo não sai do seu aparelho. Você mesmo pode conferir: abra a aba de rede das ferramentas de desenvolvedor e converta alguma coisa. Você verá a própria página e as requisições de estatística e de publicidade com que este serviço é pago, e nenhuma que leve o seu arquivo. O motor deste par específico é parquet-wasm, uma compilação em WebAssembly do leitor do Apache Arrow; seu navegador baixa isso uma vez e guarda.
É. Sem conta, sem marca d’água e sem cota diária para gastar: roda no seu próprio aparelho, então você pode voltar quantas vezes quiser. O navegador processa arquivos de até 100 MB, 100 por vez. parquet-wasm é baixado para a sua máquina e roda lá, e por isso não há contador.
XLSX e Parquet descrevem o conteúdo de maneiras radicalmente diferentes. A conversão é, portanto, uma reconstrução e não uma cópia: fiel, mas não idêntica byte a byte. Só a primeira planilha é lida, e dela só os valores. Fórmulas, formatação, largura das colunas e todas as planilhas seguintes ficam de fora.
Uma planilha vira uma página fixa. As fórmulas deixam de ser fórmulas e ficam só com o último resultado, e quem decide as quebras de página é a área de impressão, não a planilha — por isso um arquivo XLSX largo costuma chegar em Parquet espalhado por várias páginas.