求教spark如何使用窗口遍历整个RDD?

baidu_32921145 2017-05-09 03:36:51
在把一个东西从Hadoop上移植到Spark上的时候遇到了一些问题,Hadoop这个东西叫Dedoop,适用于数据去重或者链接。其原理是排序后的数据集使用一个大小为k的窗口遍历整个数据集,遍历的同时计算窗口内部的数据的互相之间的相似度。Hadoop上实现这个非常方便,只需要分组之后每个reduce做一次遍历,然后再把每个reduce的头尾拿出来再做一次reduce就好,但是在spark上遇到了这个窗口遍历的难题。

因为spark是把RDD当做整体来操作,所以我觉得这种窗口算法应该是很容易实现的才对,但是刚刚接触spark,查了很多资料,没有发现适用的办法。时间又很紧迫,所以只能来求教大家了!

目前想的是把数据当做key,排序后foreach直接使用一个窗口遍历,这样在每台机器上至少可以保证机器上面的数据已经经过计算,但是每台机器上的数据集的头尾就很难办了,第i台机器的数据尾需要与第i+1台机器的数据头进行一次计算,在spark上没有发现较好的办法。

希望大家赐教!!!非常感谢!
...全文
329 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,258

社区成员

发帖
与我相关
我的任务
社区描述
Spark由Scala写成,是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于MapReduce算法实现的分布式计算。
社区管理员
  • Spark
  • shiter
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧