2015-01-21 36 views
0

我想寫一個豬腳本來計算兩點之間的距離。 數據輸入如何讀取豬的csv文件中的下一行

x,y 
0.0,0.0 
18.6,-11.1 
36.1,-21.9 
53.7,-32.6 
70.1,-42.8 
86.5,-52.6 
101.7,-62.3 

距離公式:sqrt((x2-x1)^2 + (y2-y1)^2)

,但我不能在豬讀取下一行來計算距離!

任何人都可以幫我嗎?

回答

0

如果你能以某種方式爲點對生成一個公共標識符,你可以按照它進行分組,然後計算距離。

ID, x, y 
A, 0.0, 0.0 
A, 18.6, -11.1 
B, 36.1, -21.9 
B, 53.7, -32.6 
... 

集團通過將返回類似A, {(0.0, 0.0), (18.6, -11.1)}。現在你可以寫一個UDF來調用由計算距離的兩點組成的元組。

+0

每組之間的距離如何?在你的例子中,我如何計算A和B之間的距離? – 2015-01-22 02:58:54

+0

對於這種情況下,你需要重複點。事情是map reduce正在處理關鍵值對,而在豬的情況下,一行(關係中的入口)就是這樣一對,所以與其他所有處理都是獨立處理的。所以如果你不把它分成一行(鍵值對),它不能一起處理。 – LiMuBei 2015-01-22 09:18:24

+0

非常感謝您的回覆。 – 2015-01-22 09:32:05