spark经典面试题

一、什么是宽依赖,什么是窄依赖,哪些算子是宽依赖,哪些是窄依赖

1、宽依赖:一个分区对应多个分区,这就表明有shuffle过程,父分区数据经过shuffle过程的hash分区器划分子rdd。

例如:groupbykey   reducebykey   sortbykey等操作,shuffle可以理解为数据从原分区打乱重组到新分区

2、窄依赖:一个分区对应一个分区,这个过程没有shuffle过程

例如 map filter等

spark的stage就是按照shuffle来划分的

 

二、transformation和action算子有什么区别,举例说明

1、transformation 变换、转换算子,这种变化并不会触发提交作业,完成作业过程处理,transformation操作是延迟计算的。

也就是说从rdd到另一个rdd的转换并不会马上执行,需要遇到action操作才会触发计算

2、action行动算子,这类算子会真正的触发spark 提交job作业

 

三、哪些spark算子会shuffle

1、去重distanct

2、groupbykey  reducebykey

3、重分区 repartition coalesce

4、join算子【分情况讨论】

两个RDD的分区数相同,在join的时候设置的分区数也相同,则在join阶段不会产生shuffle
两个RDD的分区数不同,在join的时候设置的分区数不同,则在join阶段都会产生shuffle
两个RDD的分区数不同,在join的时候设置的分区数和其中一个相同,则在join阶段不

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值