[Java] Consume Substrait Plans
- 主要語言
- Java
- 星號
- 94
- 分支
- 152
- 平均合併
- 3 天 16 小時
- 30 天內合併 PR
- 11
描述
### 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
貢獻指南
研究方向
先閱讀提議的 JNI 進入點 ExecuteSerializedPlan,以及 Java 轉換呼叫 Data.importArrayStream(this.allocator, arrowArrayStream)。檢視連結的父 issue 和子任務,以確立範圍。當 Java 能夠透過 JNI 執行序列化的 Substrait 計畫,並使用 C Data Interface 將結果公開為 ArrowReader 時,即表示完成。
由索引模型根據 Issue 內容生成。
評估
- 技術堆疊
- cpp, java
- 領域
- api, backend
- Issue 類型
- 功能
- 難度
- 5/5
- 預估耗時
- 一週以上
- 活躍度
- 停滯
- 描述清晰度
- 需要釐清
- 新手友好度
- 25/100