在关于spark任务并行度的设置中,有两个参数我们会经常遇到,spark.sql.shuffle.partitions 和
spark.default.parallelism, 那么这两个参数到底有什么区别的?

首先,让我们来看下它们的定义

Property NameDefaultMeaning
spark.sql.shuffle.partitions200Configures the number of partitions to use when
shuffling data forjoins or aggregations.
spark.default.parallelismFor distributed shuffle operations like reduceByKey
andjoin, the largest number of partitions in a parent RDD.

For operations like parallelize with no parent RDDs, it depends on the cluster
manager:
- Local mode: number of cores on the local machine
- Mesos fine grained mode: 8
- Others: total number of cores on all executor nodes or 2, whichever is larger
Default number of partitions in RDDs returned by transformations likejoin,
reduceByKey, and parallelize when not set by user.
看起来它们的定义似乎也很相似,但在实际测试中,

* spark.default.parallelism只有在处理RDD时才会起作用,对Spark SQL的无效。
* spark.sql.shuffle.partitions则是对sparks SQL专用的设置
我们可以在提交作业的通过 --conf 来修改这两个设置的值,方法如下:
spark-submit --conf spark.sql.shuffle.partitions=20 --conf
spark.default.parallelism=20

技术
©2020 ioDraw All rights reserved
实现LRU Cache(java版)一个学生关于鸿蒙系统的一些看法Keras输出模型的各层的结果python中list和str互相转换flutter学习--搜索框抖音比较火的 黑客帝国-代码雨(免费送)浙大数据结构期中考试试题python计算macd的方法k8s删除pod使用函数实现两个数的交换(C语言)