Parquet export fails on struct and list columns

Aberta
#721 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
35/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
java
Domínio
data-engineering

Direção de pesquisa

Start in ParquetExporter.addColumn (ParquetExporter.java around line 179-180), where the STRUCT/LIST/MAP check throws, and trace how exportParquet (line 125) builds the schema for each column; the CLI path is ExportCommand.runParquet. Map the List, struct and Map types from the issue to Parquet group types, with Variant needing its own decision. Done means the four Raincloud datasets round-trip Parquet to Vortex to Parquet, or, as a smaller first step, the error becomes a VortexException naming the column.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

bug

ParquetExporter (and so vortex export x.vortex out.parquet) refuses any Struct, List/FixedSizeList or Map column:

java.lang.UnsupportedOperationException: unsupported column type for Parquet export (STRUCT/LIST/MAP not yet supported): List[elementType=Primitive[ptype=F32, nullable=true], nullable=true] (column: emb)
	at io.github.dfa1.vortex.parquet.ParquetExporter.addColumn(ParquetExporter.java:179)
	at io.github.dfa1.vortex.parquet.ParquetExporter.exportParquet(ParquetExporter.java:125)
	at io.github.dfa1.vortex.cli.ExportCommand.runParquet(ExportCommand.java:102)

Found with the released 0.19.1 CLI, exporting Vortex files imported from Raincloud Parquet: 4 of 10 public datasets fail, and the code on main is the same (ParquetExporter.java:180).

Raincloud slug Column Type
cohere-wikipedia-simple-embed emb fixed_size_list<float>[1024] (read as List<F32>)
coig conversations list<struct<question: string, answer: string>>
countries-of-the-world data struct<metadata: binary, value: binary> (Parquet Variant)
mnist image struct<bytes: binary, path: string>

Repro: vortex import <slug>.parquet x.vortex && vortex export x.vortex x.parquet. The import of the same Parquet works, so a Parquet → Vortex → Parquet round trip is lossy only for these types.

Expected: nested columns export as Parquet groups (LIST / plain group / MAP logical types), so that round trip holds. Until then the failure should be a VortexException naming the column, not an UnsupportedOperationException.

Linguagem predominante
Java
Estrelas
3
Forks
2
Merge médio
9h 19min
PRs com merge (30d)
154

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de dfa1/vortex-java

Todas as issues de dfa1/vortex-java

Issues semelhantes

Mais issues de Java

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.