¿Cuál es el papel de npartitions en un dataframe de Dask?

Veo las particiones de npartitions en muchas funciones, pero no entiendo para qué sirve / para qué sirve.

http://dask.pydata.org/en/latest/dataframe-api.html#dask.dataframe.read_csv

cabeza(…)

Los elementos solo se toman de las primeras npartitions, con un valor predeterminado de 1. Si hay menos de n filas en las primeras npartitions, aparecerá una advertencia y se devolverán todas las filas encontradas. Pase -1 para usar todas las particiones.

reparto (…)

Número de particiones de salida, debe ser menor que n particiones de entrada. Sólo se utiliza si no se especifican las divisiones.

Es el número de particiones probablemente 5 en este caso:

(Fuente de la imagen: http://dask.pydata.org/en/latest/dataframe-overview.html )

La propiedad npartitions es el número de marcos de datos de Pandas que componen un único dataframe de Dask. Esto afecta el rendimiento de dos maneras principales.

  1. Si no tiene suficientes particiones, es posible que no pueda usar todos sus núcleos de manera efectiva. Por ejemplo, si su dask.dataframe solo tiene una partición, entonces solo un núcleo puede operar a la vez.
  2. Si tiene demasiadas particiones, el progtwigdor puede incurrir en una gran cantidad de gastos generales para decidir dónde calcular cada tarea.

Por lo general, usted quiere un par de veces más particiones de las que tiene núcleos. Cada tarea ocupa unos pocos cientos de microsegundos en el progtwigdor.

Puede determinar el número de particiones en el momento de la ingesta de datos utilizando los parámetros como blocksize= en read_csv(...) o posteriormente utilizando el .repartition(...)