需求:如果一个用户使用了某个手机,这个手机上登录过其他的用户,那么这些用户是有关系的,同样用户关联到的用户又可以通过手机关联到其他用户 这样就构成了一个强大的关系网。现在给出用户与手机登录关系表,请找出所有的用户是有关系的。
整个用户手机关系网拓扑图如下图所示:
从图中可以发现,找到有关系的关联的用户,就是要找出上面无向图的所有联通分支。比如上图有两个联通分支。
对应上图,测试数据集合如下:
希望的输出结果为所有关联的用户对应同一个ID。
运行结果:
可以发现,结果正如我们所料。
基于 Spark GraphX 可以做很多图计算方面的事情,而且是分布式,速度比单机处理快,值得好好研究。