我有一个应用程序,其中有一个图,我需要使用MrJob(Python中的MapReduce)计算图中的三角形数量。然而,我在思考映射和所需的减少步骤时遇到了一些困难。计算网络图三角形的最佳Map Reduce管道是什么
好吧,如果有更多的上下文来回答这个问题会有所帮助。你有一个单一的图还是大量的图,一棵树?我们在您的图中谈论了多少个节点?
但总的来说,我会尝试构建一个使用networkx包的解决方案,特别是核心的三角形方法。
您可能面临的一个问题是过滤重复项,因为三角形是相对于节点报告的。
因此,在这里对细节进行更多的上下文分析将有助于缩小答案的范围。
因为您想并行计算大型网络图上的三角形。您可能对GraphScope感兴趣。这是描述:
GraphScope是一个统一的分布式图形计算平台,通过用户友好的Python接口,为在计算机集群上执行各种图形操作提供了一站式环境。GraphScope结合了阿里巴巴的几项重要技术,使计算集群上大规模图形数据的多阶段处理变得简单:分别用于分析、交互和图形神经网络(GNN)计算的GRAPE、GraphCompute和GraphLearn(GL)。
以下是GraphScope的快速启动:
# install graphscope by pip
pip3 install graphscope
>>> import graphscope
>>> graphscope.set_option(show_log=True)
>>>
>>> # load graph
>>> from graphscope.dataset import load_p2p_network
>>> g = load_p2p_network()
>>>
>>> # run sssp algorithm
>>> pg = g.project(vertices={"host": ["id"]}, edges={"connect": ["dist"]})
>>> c = graphscope.triangles(pg)
有关更多信息,请参阅如何在本地运行和开发GraphScope和GraphScope文档。