Spark文件切分过程部分源码如下:
numSplits = Math.min(defaultParallelism(默认等于核数),2)
goalSize = totalSize / (numSplits == 0 ? 1 : numSplits)
splitSize = computeSplitSize(goalSize ,minSize(默认为1),blockSize)
protected long computeSplitSize(long computeSplitSize,long minSize,long blockSize){
return Math.max(minSize,Math.min(goalSize,blockSize))
}
同时Spark也要判断数据大小是否大于切片大小的1.1倍,如果大于才按切片大小进行切分
如果想要与MR的切片过程进行比较可以看:
https://blog.csdn.net/weixin_43497444/article/details/104545199