运行以下代码时,dask.dataframe.head()的结果取决于npartitions:
import dask.dataframe as dd
import pandas as pd
df = pd.DataFrame({'A': [1,2,3], 'B': [2,3,4]})
ddf = dd.from_pandas(df, npartitions = 3)
print(ddf.head())
这产生以下结果:
A B
0 1 2
但是,当我将npartitions设置为1或2时,我得到了预期的结果:
A B
0 1 2
1 2 3
2 3 4
似乎重要的是,npartition低于数据帧的长度。这是有意的吗?在将数据转换为dask框架之前,我是否总是必须检查数据的大小?
答案 0 :(得分:4)
根据文档dd.head()
仅检查第一个分区:
head(n=5, compute=True)
数据集的前n行
警告,这只会检查第一个分区的前n行。
所以答案是肯定的,dd.head()
会受到dask数据框中有多少分区的影响。
然而第一个分区中的行数预计会大于使用dd.head()
时通常要显示的行数 - 否则使用dask不应该清偿。唯一常见的情况是,在过滤后获取第一个n
行/元素时,如this question中所述。