首页 > 解决方案 > 使用预凝胶寻找循环

问题描述

任务是使用 Scala pregel 找到一定大小 k 的循环,其中 k 是用户输入。但是,当找到一个循环时,我不知道应该在 pregel 中发送哪些消息。到目前为止,我尝试的是使用一个字符串,其中包含它通过的顶点列表并将其放入顶点属性中。如果 srcAttr 已经包含 dstId,则检测到一个循环。但是我不确定要获得循环总数后该怎么做。此外,如果它包含其他较小的循环,该任务还声明它不是一个循环。

标签: scalagraphcyclespark-graphx

解决方案


每个顶点向其邻居发送消息,其中包含 (1) 源顶点 id 和 (2) 消息要遍历的跳数(最初设置为 1)。

每个顶点在将 (2) 值加一后重新路由接收到的消息。

检查每条消息是否 msg.src_vid == msg.dst_id,并查看跳数


推荐阅读