Looking for apache-spark Answers? Try Ask4KnowledgeBase
Looking for apache-spark Keywords? Try Ask4Keywords

apache-sparkParticiones


Observaciones

El número de particiones es crítico para el rendimiento de una aplicación y / o la terminación exitosa.

Un conjunto de datos distribuido resistente (RDD) es la abstracción principal de Spark. Un RDD se divide en particiones, lo que significa que una partición es una parte del conjunto de datos, una porción de ella, o en otras palabras, una parte de ella.

Cuanto mayor sea el número de particiones, menor será el tamaño de cada partición.

Sin embargo, tenga en cuenta que un gran número de particiones ejerce mucha presión sobre el Sistema de archivos distribuidos de Hadoop (HDFS), que debe mantener una cantidad significativa de metadatos.

El número de particiones está relacionado con el uso de la memoria, y un problema de MemoryOverhead se puede relacionar con este número ( experiencia personal ).


Un error común para los nuevos usuarios es transformar su RDD en un RDD con una sola partición, que generalmente se ve así:

data = sc.textFile(file)
data = data.coalesce(1) 

¡Por lo general, es una muy mala idea, ya que le está diciendo a Spark que ponga todos los datos en una sola partición! Recuérdalo:

Una etapa en Spark operará en una partición a la vez (y cargará los datos en esa partición en la memoria).

Como resultado, le dice a Spark que maneje todos los datos a la vez, lo que generalmente resulta en errores relacionados con la memoria (memoria insuficiente, por ejemplo), o incluso una excepción de puntero nulo.

Por lo tanto, a menos que sepa lo que está haciendo, ¡evite volver a particionar su RDD en una sola partición!

Particiones Ejemplos relacionados