Spark 源码解读04---(文件生成的)rdd的分区数据划分

2.4、从外部存储(文件)创建rdd的数据如何划分

  • 代码案例

    val conf = new SparkConf().setAppName("Simple Application").setMaster("local[*]")
    val sc = new SparkContext(conf)
    // 读取本地文件
    val readline = sc.textFile("input/1.txt")
    readline.collect.foreach(println)
    
  • 源码解读

    /*
    假设字节数为 7 默认分区数为 2:
    goalSize = 7 / 2 -->  3byte
    再根据goalSize计算实际分区数:
    实际分区个数 = 7 / 3  --> 2 余数为 1 ; 1/3 = 0.33 
    所以实际分区数为: 2 + 1 = 3
    */
    /*
    如上3个分区 每个分区有3个字节
    每个分区的根据文件的起始偏移量来划分
    0: [0,3]
    1: [3,6]
    2: [6,7]
    还要注意:如果某个分区刚刚截取到一行的中间,那么他将会把整行都放在该分区中,
    因为hadoop读取分区是一行一行的读取,下一个分区将会从下一行开始读取。
    */
    
    
    
  • 总结

    文件创建rdd 的数据划分根据每个分区的根据文件的起始偏移量来划分,切数据是一行一行的读取,如果某个分区刚刚截取到一行的中间,那么他将会把整行都放在该分区中。

2.1、从集合中创建rdd的分区个数

2.2、从集合中创建rdd的分区数据如何划分

2.3、从外部存储(文件)创建rdd的个数

2.4、从外部存储(文件)创建rdd的数据如何划分

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一年又半

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值