[Java] Port Row Set abstraction from Drill to Arrow
- 主要语言
- Java
- 星标
- 94
- 派生
- 152
- 平均合并
- 3 天 16 小时
- 30 天内合并 PR
- 11
描述
Arrow is a great way to exchange data between systems. Somewhere in the process, however, data must be load into, and read out of the Arrow vectors.
Arrow's vector code started with similar code in Apache Drill. The Drill project created a "Row Set" abstraction that:
- Provides a simple way to define the schema for a set of batches.
- Loads data into vectors from row-oriented inputs.
- Reads data out of vectors in row-oriented output.
- Controls memory consumed by the record batch when loading data into vectors.
- Ensures maximum usage of the allocated vector space when loading data Into vectors.
- Optionally handles projection when reading data from an input file into a set of vectors.
- Optionally handles data conversion from input to vector formats.
This mechanism is handy for any Java developer who produces or consumes Arrow vectors.
Detailed information is available in [this wiki](https://github.com/paul-rogers/arrow/wiki), including a more detailed description of the motivation for this project, and an analysis of the work required to do the Drill-to-Arrow port.
The code is in Java simply because Drill is written in Java. The same mechanisms can be ported to other languages if useful. Those ports would be separate future projects.
The code will be placed in a new Java module which can be imported by projects that wish to use the code. Changes may be needed to expose items from the `vector` module; we'll tackle those issues if/when they occur.
**Reporter**: [Paul Rogers](https://issues.apache.org/jira/browse/ARROW-3164)
**Note**: *This issue was originally created as [ARROW-3164](https://issues.apache.org/jira/browse/ARROW-3164). Please see the [migration documentation](https://github.com/apache/arrow/issues/14542) for further details.*
贡献指南
调研方向
从链接的 Arrow wiki 开始,尤其关注其中的动机和 Drill-to-Arrow 移植分析。检查提议的新 Java 模块应如何与现有的 vector 模块交互,并确定任何所需的暴露范围更改。当 Row Set 抽象被移植到一个可导入的 Java 模块中,并具备所描述的 schema、加载、读取、内存、投影和转换能力时,即视为完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- java
- 领域
- data
- Issue 类型
- 功能
- 难度
- 5/5
- 预计耗时
- 一周以上
- 活跃度
- 停滞
- 描述清晰度
- 需要澄清
- 新手友好度
- 20/100