apache / apache/parquet-java

Why no bulk Arrow→Parquet write API in Java? How to avoid row-by-row RecordConsumer + optimize?

Ouverte
#3,353 1 commentaire 1 réaction 0 personnes assignées Voir sur GitHub
Langage dominant
Java
Étoiles
3.1k
Forks
1.6k
Merge moyen
3 j 12 h
PR mergées (30 j)
33

Description

### Describe the usage question you have. Please include as many useful details as possible.

I have ~ 20KB objects that I need to write to Parquet efficiently from Java.
In C++, C#, and Python there's a direct/bulk Arrow-Parquet write (e.g. WriteTable / write_table) that avoids row-by-row iteration, but in Java I only see row-by-row paths via RecordConsumer or internal/unstable column writers.
Questions:
1. Is there a supported bulk/columnar Arrow-Parquet write API in Java (e.g, VectorSchemaRoot
→ Parquet) that avoids row-by-row calls?
2. If not, why is Java limited to row-by-row writes today? Any roadmap for feature parity with C++/Python/C#?
3. For now, what's the recommended optimization path to write 20KB objects at high throughput from Java (without JNI), or is JNI/Dataset the recommended route?
4. Any best practices (batch sizing, encodings, writer settings) to mitigate the row-by-row overhead?

Thanks

### Component(s)

_No response_

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Commencez par examiner les chemins d’écriture Java nommés dans l’issue, en particulier RecordConsumer, les writers de colonnes internes et VectorSchemaRoot, puis comparez-les aux API bulk décrites pour C++, C# et Python. Le travail est considéré comme terminé lorsque vous avez documenté l’existence ou non d’un chemin bulk Java pris en charge, expliqué la limitation actuelle ou la roadmap, et identifié la voie d’optimisation recommandée sans JNI.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
java
Domaine
data-engineering
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.