performance - org - apache spark vs hadoop
¿Cuál es la diferencia entre spark.sql.shuffle.partitions y spark.default.parallelism? (1)
A partir de la respuesta here , spark.sql.shuffle.partitions
configura el número de particiones que se usan cuando se barajan datos para uniones o agregaciones.
spark.default.parallelism
es el número predeterminado de particiones en RDD
devueltas por transformaciones como join
, reduceByKey
y parallelize
cuando el usuario no las establece explícitamente. Tenga en cuenta que spark.default.parallelism
parece funcionar solo para RDD
sin RDD
y se ignora cuando se trabaja con marcos de datos.
Si la tarea que está realizando no es una unión o agregación y está trabajando con marcos de datos, la configuración de estos no tendrá ningún efecto. Sin embargo, puede establecer el número de particiones usted mismo llamando a df.repartition(numOfPartitions)
(no olvide asignarlo a un nuevo val
) en su código.
Para cambiar la configuración en su código, simplemente puede hacer:
sqlContext.setConf("spark.sql.shuffle.partitions", "300")
sqlContext.setConf("spark.default.parallelism", "300")
Alternativamente, puede realizar el cambio al enviar el trabajo a un clúster con spark-submit
:
./bin/spark-submit --conf spark.sql.shuffle.partitions=300 --conf spark.default.parallelism=300
¿Cuál es la diferencia entre spark.sql.shuffle.partitions
y spark.default.parallelism
?
He intentado configurar ambos en SparkSQL
, pero el número de tarea de la segunda etapa siempre es 200.