apache / apache/arrow-nanoarrow

Show examples of building Arrow C++ structures

Open
#187 10 comments 5 reactions 0 assignees View on GitHub
documentation
Dominant language
C
Stars
249
Forks
68
Avg merge
2d 16h
Merged PRs (30d)
12

Description

For users coming from Arrow C++ / PyArrow, it might not be obvious what nanoarrow structures to create so they can export. Depending on the context, an `ArrowSchema` can represent a data type, a field, or a schema. Similarly, an `ArrowArray` can represent an array or record batch (tabular). To start, we should show the correspondence between Nanoarrow structs and Arrow C++ types.

| Nanoarrow | Arrow C++ |
|----|----|
| `ArrowArray` | `arrow::Array` |
| `ArrowArray` where type is struct | `arrow::RecordBatch` |
| `std::vector` | `arrow::ChunkedArray` |
| `std::vector` where type is struct | `arrow::Table` |
| `ArrowSchema` | `arrow::DataType` |
| `ArrowSchema` | `arrow::Field` |
| `ArrowSchema` | `arrow::Schema` |

Then we may also want recipes for:

* How to build a struct array in nanoarrow, and export as an `arrow::RecordBatch`
* How to build a record batch reader, and export as an `arrow::Table`.

Contributor guide

No contributing guide indexed for this repository

Research direction

No documentation file or test is named in the issue. Start with the requested Nanoarrow-to-Arrow C++ correspondence table, then identify the documentation entry point for examples and determine how struct arrays and record batch readers are currently represented. Done means the mappings and the requested export recipes are documented and reviewable.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, cpp, python
Domain
documentation
Issue type
Documentation
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.