performance - spark.sql.shuffle.partitions 和 spark.default.parallelism 有什么区别?

标签 performance apache-spark hadoop apache-spark-sql

spark.sql.shuffle.partitionsspark.default.parallelism 有什么区别?

我在SparkSQL中都尝试过设置,但是第二阶段的任务数一直是200。

最佳答案

来自答案here , spark.sql.shuffle.partitions配置在为连接或聚合改组数据时使用的分区数。

spark.default.parallelismRDD 中的默认分区数s 由 join 等转换返回, reduceByKey , 和 parallelize当用户未明确设置时。注意 spark.default.parallelism似乎只适用于原始 RDD并在处理数据帧时被忽略。

如果您正在执行的任务不是连接或聚合,并且您正在使用数据框,那么设置这些将不会有任何效果。但是,您可以通过调用 df.repartition(numOfPartitions) 自行设置分区数。 (不要忘记在您的代码中将其分配给新的 val )。


要更改代码中的设置,您只需执行以下操作:

sqlContext.setConf("spark.sql.shuffle.partitions", "300")
sqlContext.setConf("spark.default.parallelism", "300")

或者,您可以在使用 spark-submit 将作业提交到集群时进行更改:

./bin/spark-submit --conf spark.sql.shuffle.partitions=300 --conf spark.default.parallelism=300

关于performance - spark.sql.shuffle.partitions 和 spark.default.parallelism 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45704156/

相关文章:

java - java应用程序的性能分析器

javascript - 从服务器端返回 Javascript 对象有什么好处?

performance - cuda内在函数sqrtf和powf性能问题

hadoop - 如何设置Hbase表列族的列族大小?

java - Hadoop提示不存在匿名类(NoClassDefFoundError)

java - Hive:如何计算时差

java - 使用 Android Activity 的良好实践

r - Sparklyr - 无法实例化 SessionHiveMetaStoreClient

python - PySpark XML 到带时间序列数据的 JSON

java - PySpark无法运行python2.7,没有这样的文件或目录