是否有使用hadoop map/reduce的距離計算實現。我試圖計算給定的一組點之間的距離。hadoop mapreduce距離計算
尋找任何資源。
編輯
這是一個非常聰明的解決方案。我已經嘗試了一些如何使用第一種算法,並且幾乎獲得了我期待的內容。目前我並不擔心優化程序,但我的問題是dist(X,Y)函數不起作用。當我得到reducer上的所有點時,我無法遍歷迭代器上的所有點並計算距離。有人在stackoverflow.com告訴我,在hadoop上的迭代器是不同於正常的JAVA迭代器,我不知道這一點。但是如果我能找到一個簡單的方法來通過我的dist()函數的迭代器,我可以使用第二個算法進行優化。
//This is your code and I am refering to that code too, just to make my point clear.
map(x,y) {
for i in 1:N #number of points
emit(i, (x,y)) //i did exactly like this
reduce (i, X)
p1 = X[i]
for j in i:N
// here is my problem, I can't get the values from the Iterator.
emit(dist(X[i], X[j]))
你是指「一組點之間的距離」是什麼意思?最短路徑? – 2010-07-31 23:27:07
你的輸入數據是什麼樣的?你應該解釋你在做什麼,所以我們不必猜測。 :D – sholsapp 2010-07-31 23:57:49
我用逗號分隔.csv格式的數字,12,14,3,4,8,6,7,5,當我在hadoop中讀取文件時,它們代表兩維中的點,如(12,14) (3,4)(8,6)(7,5)。我在我的映射器方法上做了這個。這可以是任意數量的點。那麼我的問題是我想實現一個reducer,以便我將能夠計算所有點之間的距離。從上面的樣本點我會計算6個距離。 謝謝, – tkt986 2010-08-01 01:44:29