- 比如两个rdd 两个分区合并去他们的并集 intersection 去数据的交集 subtract去差集
- mappartition与map像是遍历的单位是每个pation分区的数据进来的是iterrter是迭代器
- distinct去重(map+reducebykey+map)
- cogroup 作用在keyv格式上的算子
- 宽依赖产生shuffer 也就是说和磁盘还打交道
- stage是由一组并行的task组成碰到宽依赖会划分一个stage
- mapreduce每一度都落地磁盘 spark是shuffer调优做好基于内存还是挺快的]
- shuffer write的时候 两个并行的task处理的管道数据才落地
- stage的并行度由finalrdd的partion决定的
- 1 提高stage的并行度
- 方法 reducebykey(numpartion分区)就能决定
- 方法2 jion(numpartion)也可以决定
- 如何改变rdd的分区数量
- reducebykey groupbykey
- stage的切割规则是从后往前 遇到宽依赖算子就切割
- 碰到action算子有个job 将job切成stage 划分stage 形成一个新的dag 通过taskset 发送到taskscheduler 发送taske 到worker端去工作
- 资源调度和任务调度
- coalesec算子是可以指定分区产生不产生shuffe repartition就是coalsec的一个封装 repartition多用于争夺分区 cosecse多用于减少分区1 使用 cosec如果由少的分区
- 到多的分区的话 还不让他产生shuffer是不起作用的
- 默认不设置exctoer的话默认启动一个每个worker上
- Client模式默认是启动两个core 核是用1G内存