reduce 端的join

xiaoxiao2022-06-02  14

a表: id name age b表: id course sex a和b的join select * form a join b on a.id = b.id

reduce 端的join就是join过程在reduce端做

伪代码 public class ReduceJoin{ static class MyMapper extends Mapper<><><><>{ @override protected void setup(){} //通过上下文对象,map方法之前读取到文件名 @override protected void map(){} //加标记,判断是从a来还是从b来,不同的文件相同的key输出map的格式不同 @override protected void reduce(){ if(lsit1.size>0&& list2.size>0){ //两个集合都有数据才能关联上 //双重for循环进行两个集合的拼接 } } //把相同的key做关联 //创建两个list,for循环做判断,如果标签a开头的加到list1,b开头的加到list2 } }

缺点: 1.容易发生数据倾斜 2.reduce本身并行度不高,性能不高(个数datanode*0.95) 3.reducejoin需要结合list,本身存在性能瓶颈

转载请注明原文地址: https://www.6miu.com/read-4914545.html

最新回复(0)