Spark 源码系列 - 获取分区数
2022/5/3 20:14:50
本文主要是介绍Spark 源码系列 - 获取分区数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录- 版本
- 结论
- 代码入口
- SparkContext -> textFile
- SparkContext -> defaultMinPartitions
- SparkContext -> defaultParallelism
- TaskSchedulerImpl
- LocalSchedulerBackend
版本
本分析基于Spark version 3.1.2
结论
local模式下,默认最小分区数不会超过2
- 如果对spark.default.parallelism属性赋值 && 值>=2,则分区数为2.
- 其他情形分区数为1.
代码入口
val conf = new SparkConf() conf.setAppName("my-spark-01") conf.setMaster("local") // 取消如下注释,分区数为2;否则分区数为1 // conf.set("spark.default.parallelism", "3") val sc = new SparkContext(conf) val lines = sc.textFile("./data/words")
SparkContext -> textFile
def textFile( path: String, minPartitions: Int = defaultMinPartitions): RDD[String] = withScope {...}
SparkContext -> defaultMinPartitions
// 默认最小分区数不会超过2 def defaultMinPartitions: Int = math.min(defaultParallelism, 2)
SparkContext -> defaultParallelism
def defaultParallelism: Int = { ... taskScheduler.defaultParallelism }
TaskSchedulerImpl
override def defaultParallelism(): Int = backend.defaultParallelism()
LocalSchedulerBackend
// totalCores在系统初始化时赋值为1 // 如果在程序启动时没有设置spark.default.parallelism的值,那么该方法返回值是1 override def defaultParallelism(): Int = scheduler.conf.getInt("spark.default.parallelism", totalCores)
这篇关于Spark 源码系列 - 获取分区数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南