Quelle est la différence entre spark.sql.shuffle.partitions
et spark.default.parallelism
?
J'ai essayé de définir les deux en SparkSQL
, mais le numéro de tâche de la deuxième étape est toujours 200.
Quelle est la différence entre spark.sql.shuffle.partitions
et spark.default.parallelism
?
J'ai essayé de définir les deux en SparkSQL
, mais le numéro de tâche de la deuxième étape est toujours 200.
À partir de la réponse ici, spark.sql.shuffle.partitions
configure le nombre de partitions qui sont utilisés lors de mélanger les données pour les jointures ou les agrégations.
spark.default.parallelism
est la valeur par défaut du nombre de partitions en RDD
s retourné par les transformations comme join
, reduceByKey
, et parallelize
lorsqu'il n'est pas explicitement définie par l'utilisateur. Notez que spark.default.parallelism
semble être la seule à travailler pour les matières premières, RDD
et est ignoré lorsque l'on travaille avec dataframes.
Si la tâche que vous effectuez n'est pas une jointure ou de l'agrégation et que vous travaillez avec dataframes puis la définition de ces n'aura aucun effet. Vous pouvez, cependant, définissez le nombre de partitions vous-même en appelant df.repartition(numOfPartitions)
(n'oubliez pas de l'attribuer à un nouveau val
) dans votre code.
Pour modifier les paramètres de votre code, vous pouvez tout simplement faire:
sqlContext.setConf("spark.sql.shuffle.partitions", "300")
sqlContext.setConf("spark.default.parallelism", "300")
Alternativement, vous pouvez faire le changement au moment de soumettre le travail à un cluster avec spark-submit
:
./bin/spark-submit --conf spark.sql.shuffle.partitions=300 --conf spark.default.parallelism=300
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.