问题描述
我遵循了本文档dask.dataframe.from_pandas,并有名为npartitions
和chunksize
的可选参数。
所以我尝试写这样的东西:
import dask.dataframe as dd
import pandas as pd
df = pd.DataFrame(...)
df = dd.from_pandas(data=df)
该消息引发错误:
ValueError: Exactly one of npartitions and chunksize must be specified.
我想知道如何解决它,应该如何像dask在调用npartitions
时所做的那样计算DataFrame的chunksize
或dask.dataframe.read_csv
?
解决方法
在构建Dask数据框之前,您需要选择npartitions
(分区数)或chunksize
(每个分区的大小)。您需要确定要将熊猫数据帧分割成多少个并行数据帧,或者要使每个并行数据帧多大。理想情况下,您要根据系统拥有的内存以及可用的内核数量来决定。
可能是DASK中的一个小故障...因为错误本身表明我们需要指定npartitions(The number of partitions of the index to create)
或chunksize(The number of rows per index partition to use.)
..
看到此错误-
if (npartitions is None) == (chunksize is None):
raise ValueError("Exactly one of npartitions and chunksize must be specified.")
以下是有关chunksize
和npartitions
在快速数据框中的最佳做法
我认为您需要提供 npartitions 或 chunksize。 就我而言,我尝试了这两种情况并且效果很好。但是当我指定两个参数时,它给了我同样的错误。
因此,指定两者之一将清除错误。
import dask.dataframe as dd
import pandas as pd
df = pd.read_csv(filepath)
dd_df = dd.from_pandas(df,npartitions=100)
或
dd_df =dd.from_pandas(df,chunksize=100)