内置图算法

GraphFrames实现了一些标准的图算法,包括:

  • (1) 广度优先搜索(BFS)算法。
  • (2) 连通分量算法。
  • (3) 强连通分量算法。
  • (4) 标签传播算法。
  • (5) PageRank算法。
  • (6) 最短路径算法。
  • (7) 三角计数算法。

下面学习如何使用GraphFrames自带的这些图算法。

1. 广度优先搜索(BFS)算法

广度优先搜索算法(Breadth-First-Search,BFS),是一种图搜索算法。简单的说,BFS是从根节点开始,沿着树(图)的宽度遍历树(图)的节点。如果所有节点均被访问,则算法中止。BFS属于盲目搜索。

算法步骤如下:

  • (1) 首先将根节点放入队列中。
  • (2) 从队列中取出第一个节点,并检验它是否为目标。如果找到目标,则结束搜寻并回传结果。否则将它所有尚未检验过的直接子节点加入队列中。
  • (3) 若队列为空,表示整张图都检查过了——亦即图中没有欲搜寻的目标。结束搜寻并回传“找不到目标”。
  • (4) 重复步骤2。

广度优先算法的遍历顺序为:1->2->3->4->5->6->7->8->9->10->11->12,如下图所示。

会员登录


《Spark原理深入与编程实战》