2017-10-09 124 views
2

我在许多功能中看到参数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

回答

1

npartitions属性是构成一个单一的数据帧DASK熊猫dataframes的数量。这在两个主要方面影响性能。

  1. 如果您没有足够的分区,那么您可能无法有效使用所有核心。例如,如果dask.dataframe只有一个分区,则一次只能运行一个内核。
  2. 如果分区太多,那么调度程序可能会承担大量开销,决定在哪里计算每个任务。

一般而言,您希望分区数比核心数多一倍。每个任务在调度程序中占用几百微秒。

您可以使用参数read_csv(...)中的blocksize=或之后的.repartition(...)方法在数据摄取时间中确定分区数。