Spark离线计算优化――leftOuterJoin优化

匿名 (未验证) 提交于 2019-12-03 00:22:01

两个k-v格式的RDD进行leftOuterJoin操作如果数据量较大复杂度较高的话计算可能会消耗大量时间。

可以通过两种方式进行优化:

1、leftOuterJoin操作前,两个RDD自身进行reduceByKey操作(保证key唯一);

2、两个RDD先map成结果k-v格式,再将两个RDD进行reduceByKey操作(避免使用leftOuterJoin操作),示例:

RDD1:(a, a1)

RDD2:(a, b1)

结果应该为(a,a1,b1)

优化过程:先通过map操作 RDD1(a, a1, '') RDD2(a, '', b1),进行reduceByKey操作得value取不为''的值,即可得到(a,a1,b1)

除了reduceByKey,其实也可以用groupByKey代替leftOuterJoin,但是groupByKey处理结果无法控制value顺序,性能也不如reduceByKey操作。

reduceByKey操作耗时),如果时间较长则选择方式2进行优化。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!