适用场景
- 进行join中至少有一个RDD的数据量比较少(比如几百M,或者1-2G)
- 因为,每个Executor的内存中,都会驻留一份广播变量的全量数据
Broadcast与map进行join代码示例
创建RDD
val list1 = List((jame,23), (wade,3), (kobe,24))
val list2 = List((jame,cave), (wade,bulls), (kobe,lakers))
val rdd1 = sc.makeRDD(list1)
val rdd2 = sc.makeRDD(list2)
传统的join
// 传统的join操作会导致shuffle操作。
// 因为两个RDD中,相同的key都需要通过网络拉取到一个节点上,由一个task进行join操作。
val rdd3 &

本文介绍了在Spark中,如何通过Broadcast与map结合进行join操作来优化性能,特别是适用于其中一个RDD数据量较小的场景。文章详细展示了创建RDD、传统的join方法以及利用Broadcast避免shuffle的join操作过程。
最低0.47元/天 解锁文章
298

被折叠的 条评论
为什么被折叠?



