npartitions在Dask数据框中的作用是什么?
问题描述:
我在许多功能中看到参数npartitions
,但我不明白它对于/用于什么有好处。npartitions在Dask数据框中的作用是什么?
http://dask.pydata.org/en/latest/dataframe-api.html#dask.dataframe.read_csv
头(...)
如果有少于n行的第一个nPartition的元素只能从第一nPartition的拍摄,与1默认将显示一条警告被提出并返回任何找到的行。传递-1以使用所有分区。
再分配(...)输出的分割
数量,必须小于输入的nPartition的。仅在未指定分区时使用。
是分区的可能是在这种情况下,5的数量:
(图像源:http://dask.pydata.org/en/latest/dataframe-overview.html)
答
的npartitions
属性是构成一个单一的数据帧DASK熊猫dataframes的数量。这在两个主要方面影响性能。
- 如果您没有足够的分区,那么您可能无法有效使用所有核心。例如,如果dask.dataframe只有一个分区,则一次只能运行一个内核。
- 如果分区太多,那么调度程序可能会承担大量开销,决定在哪里计算每个任务。
一般而言,您希望分区数比核心数多一倍。每个任务在调度程序中占用几百微秒。
您可以使用参数read_csv(...)
中的blocksize=
或之后的.repartition(...)
方法在数据摄取时间中确定分区数。