API 参考#

Dask cuDF 实现了 Dask-DataFrame API,使用 cudf 对象代替 pandas 对象。正如介绍中所建议的,使用 dask_cudf 的最佳方法是使用 Dask DataFrame API,并将后端设置为 cudf。

>>> import dask
>>> dask.config.set({"dataframe.backend": "cudf"})

本页的其余部分文档化了您可能明确使用 dask_cudf 的 API。

创建和存储 DataFrames#

与 Dask 类似,Dask-cuDF 支持从各种存储格式创建 DataFrames。除了那里文档化的方法之外,Dask-cuDF 还提供了一些 cuDF 特定的方法。

dask_cudf.from_cudf(data, npartitions=None, chunksize=None, sort=True, name=None)#

cudf.DataFrame 创建 dask.dataframe.DataFrame

此函数是 dask.dataframe.from_pandas() 的一个轻量级包装,接受相同的参数(如下所述),不同之处在于它操作的是 cuDF 对象而不是 pandas 对象。

从 Pandas DataFrame 构造 Dask DataFrame

这将内存中的 Pandas dataframe 分割成几个部分,并从这些部分构造一个 dask.dataframe,以便 Dask.dataframe 可以并行操作。默认情况下,输入的 dataframe 将按索引排序,以生成清晰划分的分区(具有已知划分)。要保留输入顺序,请确保输入索引是单调递增的。sort=False 选项也将避免重新排序,但不会导致已知划分。

参数:
datapandas.DataFrame or pandas.Series

用于构造 Dask DataFrame/Series 的 DataFrame/Series

npartitionsint, 可选, 默认 1

要创建的索引分区数。请注意,如果 data.index 中存在重复值或元素不足,输出的分区数可能少于请求的数量。

chunksizeint, 可选

每个索引分区期望使用的行数。请注意,根据 dataframe 的大小和索引,实际分区大小可能会有所不同。

sort: bool

首先按索引对输入进行排序,以获得清晰划分的分区(具有已知划分)。如果为 False,则输入将不排序,所有划分都将设置为 None。默认为 True。

name: string, 可选

dataframe 的可选键名。默认为对输入进行哈希

返回:
dask.DataFrame or dask.Series

沿索引分区的 dask DataFrame/Series

引发:
TypeError

如果传入的不是 pandas.DataFramepandas.Series

另请参阅

dask.dataframe.from_array

从具有 record dtype 的数组构造 dask.DataFrame

dask.dataframe.read_csv

从 CSV 文件构造 dask.DataFrame

示例

>>> from dask.dataframe import from_pandas
>>> df = pd.DataFrame(dict(a=list('aabbcc'), b=list(range(6))),
...                   index=pd.date_range(start='20100101', periods=6))
>>> ddf = from_pandas(df, npartitions=3)
>>> ddf.divisions
(Timestamp('2010-01-01 00:00:00'),
 Timestamp('2010-01-03 00:00:00'),
 Timestamp('2010-01-05 00:00:00'),
 Timestamp('2010-01-06 00:00:00'))
>>> ddf = from_pandas(df.a, npartitions=3)  # Works with Series too!
>>> ddf.divisions
(Timestamp('2010-01-01 00:00:00'),
 Timestamp('2010-01-03 00:00:00'),
 Timestamp('2010-01-05 00:00:00'),
 Timestamp('2010-01-06 00:00:00'))

对于 Dask-cuDF 不直接支持的磁盘数据,我们建议使用以下方法之一: