[Java] Consume Substrait Plans
- Vorherrschende Sprache
- Java
- Sterne
- 94
- Forks
- 152
- Ø Merge
- 3 T. 16 Std.
- Gemergte PRs (30 T.)
- 11
Beschreibung
### 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
Beitragsleitfaden
Rechercherichtung
Beginne mit dem Lesen des vorgeschlagenen JNI-Einstiegspunkts ExecuteSerializedPlan und des Java-Konvertierungsaufrufs Data.importArrayStream(this.allocator, arrowArrayStream). Sieh dir den verknüpften übergeordneten Issue und die Teilaufgaben an, um den Umfang festzulegen. Die Aufgabe ist abgeschlossen, wenn Java einen serialisierten Substrait-Plan über JNI ausführen und das Ergebnis als ArrowReader über die C Data Interface bereitstellen kann.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- cpp, java
- Bereich
- api, backend
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100