join

作者: 博瑜 | 来源:发表于2017-06-17 10:21 被阅读0次

1)Map-side Join
Map-side Join使用场景是一个大表和一个小表的连接操作,其中,“小表”是指文件足够小,可以加载到内存中。该算法可以将join算子执行在Map端,无需经历shuffle和reduce等阶段,因此效率非常高。
2)Reduce-side Join
当两个文件/目录中的数据非常大,难以将某一个存放到内存中时,Reduce-side Join是一种解决思路。该算法需要通过Map和Reduce两个阶段完成,在Map阶段,将key相同的记录划分给同一个Reduce Task(需标记每条记录的来源,便于在Reduce阶段合并),在Reduce阶段,对key相同的进行合并。

df广播使用方法,网友blog
http://www.jianshu.com/p/2c7689294a73

Screen Shot 2017-06-17 at 10.27.51 AM.png

rdd 广播

val arr = rdd.collect
val broadcatRes = sc.broadcast(arr) //数据字典广播

在用的时候

rdd.map(t =>
val index = binarySearch(broadcastRes.value,t)
val info = broadcastRes.value(index)
info
)

相关文章

网友评论

      本文标题:join

      本文链接:https://www.haomeiwen.com/subject/afvvqxtx.html