apache / apache/arrow-java

[Java] Consume Substrait Plans

未关闭
#218 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
Component: Documentation Type: enhancement
主要语言
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

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。