文章目录


RDD的分区,在算子里面未指定RDD的分区的时候,默认的分区数和核数相同,同理也会启动相应的task个数


源码中的分区数默认是2

sc.textFile(""),其中分区数和读取的小文件数相同,都小于128M,

基于spark2.2.0的,textFile默认是调用的是hadoop的textFile,底层调用的是TextInputFormat()然后是InputFormat,假设现在有三个文件,两个文件是5k,6k,有一个600k,那么分区数是4个,理想切片数是(5+6+600)/2 的大小,因此600超过理想切片个数,之前说是低于128M的算一个切片,对于同一个文件大小小于128M的0.1倍的时候会作为一个切片处理,

======笔者有空会贴源码

注意:分区数和task个数是相同的 ,task在driver端生成,在executor端执行