请问Spark中从文件中创建RDD时分区的数据划分具体机制是什么?

这是我创建RDD的程序代码

package com.syc.bigdata.spark.core.rdd.builder

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object Spark02_RDD_File_Par1 {

  def main(args: Array[String]): Unit = {

    //TODO 准备环境
    //*号表示本地环境中最大可用核数,采用多线程模拟集群环境
    var sparkConf = new SparkConf().setMaster("local[*]").setAppName("RDD")
    val sc = new SparkContext(sparkConf)
    //TODO 创建RDD
    //TODO 数据分区的分配
    val rdd: RDD[String] = sc.textFile("datas/1.txt",2)

    rdd.saveAsTextFile("output")
    //TODO 关闭环境
    sc.stop()
  }
}

这是用于读取的文件datas/1.txt,其中CR为回车符,LF为换行符
img
这是代码运行完成后产生的三个分区数据文件

img

img

img

请问什么样的机制导致了这样的数据划分结果,并且数据的内容产生了变化?(少了两个CR符,多了一个LF符)

注:我使用的spark-core版本为spark-core_2.12-3.0.0.jar

可参考如下,这里有划分分区的各个角度,以及划分分区的源码解析:
https://blog.csdn.net/weixin_40751045/article/details/89517839
https://blog.csdn.net/qq_43192537/article/details/110279319
https://www.cnblogs.com/guoyu1/p/12300404.html
https://blog.csdn.net/qq_40180229/article/details/105587878
https://blog.csdn.net/qq_26502245/article/details/88369642
如有帮助,望采纳