程光CS 2021-07-30 20:56 采纳率: 50%
浏览 16

请问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

  • 写回答

1条回答 默认 最新

报告相同问题?

问题事件

  • 创建了问题 7月30日