0
我想實現一個map reduce程序來查找2GB數據集中彼此接近的所有記錄(類似於每個記錄及其鄰居應該是輸出)。靠近,我的意思是歐式距離。在數據集中,每個記錄都有一個x和y座標。任何人都可以建議我做一些直覺。我知道地圖應該發出每條記錄,並且reduce可以簡單地運行一個double for循環中的每個條目輸入它以找到鄰居,但是有更好的解決方案,因爲我的實現速度非常慢。提前致謝。使用Map Reduce查找所有記錄接近特定記錄
map(rid,r):
emit(key,r)
reduce(key,lst=[r1,r2....]):
for elm1 in lst:
for elm2 in lst:
if elm2 is in range of elm1:
process(elm1,elm2)
進程函數簡單地將elm2作爲鄰居或elm1作爲mongodb數據庫。我的mongodb數據庫中的每條記錄的結構如下
記錄'R'|記錄'R'的鄰居列表