pyspark中的多个MAP功能

时间:2017-11-08 20:03:40

标签: mapreduce pyspark dbscan

我是pyspark的新手,我打算用https://github.com/mraad/dbscan-spark中解释的MAP_REDUCE技术实现DBSCAN,但我不明白, 很明显,如果我们有多台计算机,那么我们将每个单元分配给MAP,并且如链接中所解释的,在调用REDUCE之后,我们找出每个epsilon邻居的内容,但在单个计算机中我们如何运行并将MAP分配给单元。 我们如何在单个计算机(pyspark)中定义多个地图并将它们分配给单元格呢?

我根据单元格的epsilon邻居写了fishnet(cell,eps)返回点位置。 我想将它传递给每个MAP,但我不知道如何在pyspark中执行此操作

类似的东西(如果我们有4个单元格): map1(fishnet) map2(fishnet) map3(fishnet) map4(fishnet)  

我会考虑任何解决方案

1 个答案:

答案 0 :(得分:0)

Spark / MapReduce的工作是将映射器分发给不同的工作人员。不要搞乱那部分,让Spark决定在哪里调用实际的映射器。

请注意Spark不太适合群集。它的集群功能非常有限,而且性能非常糟糕。参见例如:

  

Neukirchen,赫尔穆特。 “大数据与高性能计算的表现:一些观察。”

它需要900个内核和Spark才能胜过像ELKI这样的优秀单核应用程序!而其他Spark DBSCAN实现要么不能可靠地工作(即失败),要么产生错误的结果。