apache / apache/arrow-java

[Java] Consume Substrait Plans

Offen
#218 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Component: Documentation Type: enhancement
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

Beitragsleitfaden öffnen

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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.