使用 pyarrow dtype 创建 dask 数组

Create a dask array with pyarrow dtype

提问人:Adrien Pacifico 提问时间:8/21/2023 更新时间:8/21/2023 访问量:76

问:

在 pandas 中,我可以通过以下方式使用 pyarrow dtype 创建一个系列:

>>> import pandas as pd

>>> s = pd.Series([1,2,3]).astype("int64[pyarrow]")
>>> s.dtype
int64[pyarrow]

我没有找到如何用 Dask 做到这一点。

我试过了:

>>> import dask.config
>>> import dask.array as da
>>> dask.config.set({"array.pyarrow_dtype": True})

>>> s = da.array([1,2,3])
>>> s

它返回一个具有 numpy int 64 dtype 的数组。

enter image description here

我还尝试了以下方法:

>>> import dask.array as da
>>> s = da.array([1,2,3], dtype="int64[pyarrow]")
TypeError: data type 'int64[pyarrow]' not understood

>>> import dask.array as da
>>> import pyarrow as pa
>>> s = da.array([1,2,3], pa.int64())

TypeError: Cannot interpret 'DataType(int64)' as a data type

可能吗?

pandas dask pyarrow apache-arrow dtype

评论


答:

1赞 mdurant 8/21/2023 #1

dask.array 不直接支持 pyarrow。事实上,由于它们将代表(常规)numpy 数组,因此箭头不会提供任何好处。

IS 支持支持 NEP18 () 的任意数组后端,例如,允许将 numpy 换成 cupy。但是,我不相信这包括任何箭头结构 - 或者我不知道如何实现它。__array_function__

您在 dask 中看到的对箭头支持的引用特定于 DataFrame,并且通常(总是?)用于字符串。