apache / apache/arrow-java

[Java] Consume Substrait Plans

Ouverte
#218 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Component: Documentation Type: enhancement
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

Recevez les nouvelles issues par e-mail

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