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

如何使用 map 函数正确并行运行 pyspark 代码

如何使用给定的reduce函数基于pyspark中的字段合并多个JSON数据行

在 Pyspark 中的多个列上使用相同的函数重复调用 withColumn()