在把一個東西從Hadoop上移植到Spark上的時候遇到了一些問題,Hadoop這個東西叫Dedoop,適用于資料去重或者鏈接。其原理是排序后的資料集使用一個大小為k的視窗遍歷整個資料集,遍歷的同時計算視窗內部的資料的互相之間的相似度。Hadoop上實作這個非常方便,只需要分組之后每個reduce做一次遍歷,然后再把每個reduce的頭尾拿出來再做一次reduce就好,但是在spark上遇到了這個視窗遍歷的難題。
因為spark是把RDD當做整體來操作,所以我覺得這種視窗演算法應該是很容易實作的才對,但是剛剛接觸spark,查了很多資料,沒有發現適用的辦法。時間又很緊迫,所以只能來求教大家了!
目前想的是把資料當做key,排序后foreach直接使用一個視窗遍歷,這樣在每臺機器上至少可以保證機器上面的資料已經經過計算,但是每臺機器上的資料集的頭尾就很難辦了,第i臺機器的資料尾需要與第i+1臺機器的資料頭進行一次計算,在spark上沒有發現較好的辦法。
希望大家賜教!!!非常感謝!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/64440.html
標籤:Spark
上一篇:現在那個運服務器比較不錯一些呢
