2017-08-17 48 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