关于广播变量的疑问
来源:10-4 广播变量在Spark中是使用二

哆啦A梦爱学习吖
2020-05-27
课时:10-4 广播变量在Spark中的使用二。
根据老师所给的第一个案例:两个RDD 进行join操作,共有三个stage,前两个stage是两个RDD
分别执行map,之后shuffle,再执行join,也就是stage3,这时候也就是所谓的reduce阶段了。
这个过程中使用的是普通变量,所以每个task分别在内存中保留相应的变量。
第二个案例,小表作为广播变量,遍历大表,每次取一行判断小表是否跟大表匹配,匹配上的作为结果存入数组中。
第二个案例应该是没有shuffle过程的,那怎么去判断,这个优化,到底是因为没有shuffle促使的,还是因为使用了广播变量? 理论上,即使我没有使用广播变量,也是可以实现第二个join方式的吧!!!
反正这节很仓促,听得云里雾里 。
写回答
1回答
-
Michael_PK
2020-05-27
1,关于stage拆分的一句话总结:遇到带shuffle的算子就会产生新的stage。2,spark中sql的join默认有个参数,多大范围内是广播的,超过就不是了
00
相似问题