【发布时间】:2021-03-22 10:36:24
【问题描述】:
我正在运行 Spark GraphX pregel 算法,其中顶点是纬度/经度的交点坐标,边是路段 - 道路网络。为了论证的缘故,让我们假设在运行算法时跨顶点的统一消息负载。
我想通过提供更好的分区来提高性能。我的第一个努力是创建一个PartitionStrategy,它根据对源坐标的聚类来划分边缘。我使用了 Spark k-means 算法。然后,我意识到,虽然这可以很好地对欧几里德点进行聚类,但它往往不能很好地平衡顶点的负载 - 集群大小差异很大。
在野外有一些凝聚聚类技术可以找到一个近似的解决方案。但是,由于我已经在 Spark 中,是否有一种实现可以为一些(大约)相同大小的 k 生成集群?或者,有没有我没有发现使用内置 mllib 工具的方法?
【问题讨论】:
标签: apache-spark cluster-analysis spark-graphx