pyspark中的多个MAP函数
Posted
技术标签:
【中文标题】pyspark中的多个MAP函数【英文标题】:multiple MAP function in pyspark 【发布时间】:2017-11-08 20:03:40 【问题描述】: 你好我是 pyspark 的新手,我将使用 https://github.com/mraad/dbscan-spark 中解释的 MAP_REDUCE 技术实现 DBSCAN,但我不明白一些东西, 显然,如果我们有多台计算机,那么我们将每个单元分配给一个 MAP,并且如链接中所述,在调用 REDUCE 之后,我们找出单元的每个 epsilon 邻居的内容,但是在单台计算机中我们如何运行并将 MAP 分配给单元。 我们如何在单台计算机(pyspark)中定义多个地图并将它们分配给单元格?
我写了fishnet(cell,eps)
,根据单元格的 epsilon 邻居返回点位置。
我想将它传递给每个 MAP,但我不知道如何在 pyspark 中执行此操作。
类似的东西(如果我们有 4 个单元格):
map1(fishnet)
map2(fishnet)
map3(fishnet)
map4(fishnet)
我愿意为任何解决方案提供帮助
【问题讨论】:
【参考方案1】:Spark / MapReduce 的工作是将映射器分配给不同的工作人员。不要搞乱那部分,让 Spark 决定在哪里调用实际的映射器。
请注意,Spark 不太适合集群。它的集群能力非常有限,性能也很差。参见例如:
纽基兴,赫尔穆特。 “大数据性能与高性能计算:一些观察。”
Spark 需要 900 个内核才能胜过像 ELKI 这样的优秀单核应用程序!其他 Spark DBSCAN 实现要么不能可靠地工作(即失败),要么会产生错误的结果。
【讨论】:
以上是关于pyspark中的多个MAP函数的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 pyspark 正确使用 rdd.map 中的模块
如何在 Pyspark 中使用 @pandas_udf 返回多个数据帧?
Pyspark:使用 map 函数而不是 collect 来迭代 RDD