2017-08-17 49 views
-1

我正在開發並行編程的coursera scala課程。我有一個函數在我的結果是平行的集:從並行收集到順序的scala轉換結果

Map((0.0, 0.0, 0.0) -> ParVector((0.0, 0.0, 0.0), (0.0, 0.0, 0.0), (0.0, 0.0, 0.0), (0.0, 0.0, 0.0))) 

預期的結果是:

Map((1.0, 0.0, 0.0) -> List((1.0, 1.0, 0.0), (1.0, -1.0, 0.0)), (-1.0, 0.0, 0.0) -> List((-1.0, 1.0, 0.0), (-1.0, -1.0, 0.0))) 

更新:刪除代碼,以避免混亂。

目的是轉換地圖ParMap(平均ParVector [要點])與地圖(意思是,列表[要點])

當我做result.toMap,它給了我 地圖(平均值,ParVector [要點])

我應該怎麼做,以地圖的價值部分轉換爲列表[要點]

+0

很明顯,'means'包含一個元素,即'(0,0,0)'。 'points'似乎有4個元素,對於每個元素,findClosest(不管那是什麼)返回相同的結果,這是'means'中的單個元素。 不確定你在這裏問什麼。嘗試檢查了這一點:http://stackoverflow.com/help/mcve – Dima

+0

請在負面標記之前要求更多的澄清。我在前面的問題中也詢問了結果類型。如果需要,我總是可以解釋更多。 – kromastorm

+0

請檢查我之前評論的鏈接。你不需要「被要求澄清」。負面排名不會反映在你身上。它只是說明這個問題對於網站上其他人有用的可能性。 – Dima

回答

0
def classify(points: GenSeq[Point], means: GenSeq[Point]): GenMap[Point, GenSeq[Point]] = { 
    val emptyMap = means.map((_, GenSeq())).toMap 
    emptyMap ++ points.groupBy(p=>findClosest(p,means)) 

}

遵循簽名,我不知道是什麼你的associatedPoints的意思是。

+0

感謝您的回覆。如果我必須使用平行收集,我應該如何達到相同的結果?該作業用於平行收集。 – kromastorm