Parquet export fails on struct and list columns

Aperta
#721 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
java

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.

Lingua principale
Java
Stelle
3
Fork
2
Merge medio
9h 19m
PR unite (30g)
154

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di dfa1/vortex-java

Tutte le issue di dfa1/vortex-java

Issue simili

Altre issue su Java

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.