Apache spark 用graphx/spark进行图划分

Apache spark 用graphx/spark进行图划分,apache-spark,spark-graphx,Apache Spark,Spark Graphx,我想使用graphx/spark进行图形分区。在我自己实现它之前,经过一些讨论之后,我想问你是否已经有了一个解决方案 是否有Graphx/Spark的实现,可用于将图形的顶点划分为指定数量的子集,以便: 每个子集的顶点数或多或少相等 子集之间的边数最小化 子集内部的所有顶点使用属于子集的边(直接或通过几个EGDE)相互连接 ? 在PartitionStrategy.scala中有几种策略:EdgePartition2D、EdgePartition1D、RandomVertexCut、Cano

我想使用graphx/spark进行图形分区。在我自己实现它之前,经过一些讨论之后,我想问你是否已经有了一个解决方案

是否有Graphx/Spark的实现,可用于将图形的顶点划分为指定数量的子集,以便:

  • 每个子集的顶点数或多或少相等

  • 子集之间的边数最小化

  • 子集内部的所有顶点使用属于子集的边(直接或通过几个EGDE)相互连接

?


在PartitionStrategy.scala中有几种策略:EdgePartition2D、EdgePartition1D、RandomVertexCut、CanonicalRandomVertexCut。它们似乎都不适合这个问题。

最后,我找不到现成的解决方案,只是用Pregel做了一个简单的实现。

需求1和需求2大致由捆绑策略中的启发式处理。我看不出第三种方法是如何作为一种策略直接轻松地完成的,也就是说,如果不首先花时间实际查找子集的话。如果您这样做,您可以创建一个按属性分区的策略(即通过vertexId查找表)。你能描述一下你的解决方案吗?