SparkRDD

SparkRDD概念

1.采用装饰器设计模式,层层包装,类似于传输管道,本身不保留数据

2.类似于Java String这样的工具类

3.Spark基于MR设计,操作文件的类都采用MapReduce设计,因此SparkRDD的分区是依赖MapReduce的切片规则实现的。

在简单内存数据读取的过程中,分区按三个规则走,首先检查是否规定了任务的分区数,若没有则检查默认分区配置,没有则再采用分配的线程核数(local[])

在文件数据读取过程中,RDD的实际分区数计算方法:

1.先按目标分区数给每个分区分配空间

例如目前需要分类13byte,目标分区数2

每个分区的splitsize 13/2=6byte

剩余空间13%2=1<6x0.1=0.6 所以需要再设置一个分区(MapReduce中的切片) 总分区数就是3

根据hadoop的切片规则,若最后一次分区后所剩空间小于等于切片大小的0.1,则将其与最后一个切片压缩在一起,以避免小文件。


SparkRDD
http://example.com/2024/10/23/数仓开发/Spark/SparkRDD/
Author
lpy
Posted on
October 23, 2024
Licensed under