dask cudf无法访问map_partitions

0 投票
1 回答
20 浏览
提问于 2025-04-13 16:37

我尝试创建一个 dask_cudf 数据框,但遇到了一个错误。

import dask_cudf
import cudf


# Example pandas DataFrame with a datetime string column
pdf = pd.DataFrame({'datetime_str': ['2024-03-19 12:00:00', '2024-03-19 10:00:00', '2024-03-19 11:00:00']})

# Convert the pandas DataFrame to a cuDF DataFrame
cdf = cudf.from_pandas(pdf)

# Convert the cuDF DataFrame to a Dask cuDF DataFrame
ddf = dask_cudf.from_cudf(cdf, npartitions=2) # error 

我收到的错误信息是:

AttributeError: DataFrame object has no attribute map_partitions

我发现了

cudf.core.dataframe.DataFrame # no map_partitions
dask_cudf.DataFrame.map_partitions 
dask_cudf.core.map_partitions
dask_cudf.core.DataFrame.map_partitions
dask.dataframe.map_partitions

怎么才能让 "dask_cudf.from_cudf" 使用 map_partitions 呢?谢谢!

1 个回答

0

根据文档

dask_cudf.from_cudf 是一个简单的封装,基于 dask.dataframe.from_pandas()

而第一个参数 data 预计是 pandas.DataFramepandas.Series

所以第一个选项是:

# Sample data frame
pdf = pd.DataFrame({
    'datetime_str': [
        '2024-03-19 12:00:00', 
        '2024-03-19 10:00:00', 
        '2024-03-19 11:00:00']})

# Create Dask-cuDF DataFrame
ddf = dask_cudf.from_cudf(pdf, npartitions=2)

第二个选项是:

对于那些在 Dask-cuDF 中不直接支持的磁盘数据,我们建议使用 Dask 的数据读取功能,然后调用 from_dask_dataframe() 来获取一个 Dask-cuDF 对象。

撰写回答