Nested columns are not repartitioned: one chunk per batch instead of Rust's ~1 MB chunks

Aberta
#723 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
55/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
java
Domínio
data

Direção de pesquisa

Start with Repartitioner.supports and the byte sizing and head/tail slicing paths for StructData, ListData, and FixedSizeListData. Extend RepartitionInteropIntegrationTest with list<struct<utf8>> and struct columns, then compare chunk row counts and sizes with vortex-jni. Done means nested columns are repartitioned into comparable ~1 MB chunks.

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

Descrição

bug

Repartitioner.supports covers Primitive, Bool, Decimal, Utf8 and Binary; struct, list, fixed-size-list, map and variant columns are written one chunk per input batch. Rust's RepartitionStrategy coalesces every column, nested ones included, into ~1 MB chunks of 8192-row multiples.

Found on Raincloud coig: conversations (list<struct<question: utf8, answer: utf8>>) is written as 3 chunks of 65536 rows (the Parquet import's batches), where Rust writes 22 chunks of 8192 rows. The column is 2.6% bigger than Rust's (63.74 MB vs 62.13 MB from vortex-jni 0.91), and a row-range or pruned read touches 8x more rows per chunk.

Fix: byte sizing and head/tail slicing for StructData, ListData and FixedSizeListData carriers, then admit them in supports.

Test first: extend RepartitionInteropIntegrationTest with list<struct<utf8>> and struct columns, comparing chunk row counts and sizes with vortex-jni.

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.