[Java] Consume Substrait Plans
- Langage dominant
- Java
- Étoiles
- 94
- Forks
- 152
- Merge moyen
- 3 j 16 h
- PR mergées (30 j)
- 11
Description
### Describe the enhancement requested
The main purpose is to expose Java API to be able to Consume Substrait Plans as an input data.
**High level proposal will be:**
1. Create Java JNI Wrappers to call C++ Substrait API:
- Call `Result> ExecuteSerializedPlan` from JNI Wrappers
- Expose the result in a C-Data Interface objects contract
2. Create Java API to read C-Data Interface:
- Call Java JNI Wrapper to execute serialized Substrait Plan
- Convert C-Data Interface `ArrowArrayStream` into `ArrowReader`: `Data.importArrayStream(this.allocator, arrowArrayStream)`
Parent issue, see subtasks
- https://github.com/apache/arrow/issues/34223
- https://github.com/apache/arrow/issues/34224
- https://github.com/apache/arrow-java/issues/216
- https://github.com/apache/arrow/issues/34226
### Component(s)
Documentation, Java, Packaging
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par lire le point d’entrée JNI proposé, ExecuteSerializedPlan, ainsi que l’appel de conversion Java Data.importArrayStream(this.allocator, arrowArrayStream). Consultez l’issue parente et les sous-tâches associées afin d’établir le périmètre. Le travail est terminé lorsque Java peut exécuter un plan Substrait sérialisé via JNI et exposer le résultat sous forme d’ArrowReader à l’aide de la C Data Interface.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- cpp, java
- Domaine
- api, backend
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 25/100