apache / apache/arrow

[C++][Compute] Random kernels for numeric and binary types

Open
#47,288 10 comments 0 reactions 0 assignees View on GitHub
Component: C++ Type: enhancement
Dominant language
C++
Stars
17.1k
Forks
4.3k
Avg merge
3d 13h
Merged PRs (30d)
88

Description

### Describe the enhancement requested

In discussion about [making PyArrow tests numpy independent](https://github.com/apache/arrow/issues/47255) it came up we could more random array generation kernels to produce random test data for PyArrow (see [RandomArrayGenerator](https://github.com/apache/arrow/blob/main/cpp/src/arrow/testing/random.h) for arrow c++ test data generator). Other libraries that use PyArrow could use such kernels too (e.g. Pandas uses NumPy).

We have a kernel for producing [random float64s](https://arrow.apache.org/docs/cpp/compute.html#random-number-generation) ([PR](https://github.com/apache/arrow/pull/11864)), but lack kernels for other types.

API-wise we could either expand [RandomOptions](https://arrow.apache.org/docs/cpp/api/compute.html#_CPPv4N5arrow7compute13RandomOptionsE) with parameters for different types and use `pyarrow.compute.random` kernel or provide new kernels e.g. `pyarrow.compute.random_string`.

### Component(s)

C++

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.