spark graphx 怎么实现类似 QQ 好友推荐功能? neo4j 一条语句实现

2019-01-17 11:51:13 +08:00
 engineer9

好友关系:

1 2
1 3
1 4
1 5
1 6
1 7
1 8
2 3
3 9
9 10
7 9
2 7

我想实现如下功能,求 3 节点与它的二跳节点的好友之间的共同好友个数,实现类似 QQ 好友推荐功能:

3 和 5 的共同好友个数为:1
3 和 10 的共同好友个数为:1
3 和 6 的共同好友个数为:1
3 和 7 的共同好友个数为:3
3 和 8 的共同好友个数为:1
3 和 4 的共同好友个数为:1
————————————————————————————————————
排序之后,这里可以给 3 推荐 7 认识。
  1. 简单的通过 for 循环(得到好友节点的会触发 action)算出这样的关系在 spark 中估计也没什么优势吧(千万节点,亿条关系)?但是求二跳节点通过 graphx 自带的 api 还是有很大优势的。
  2. saprk graphx 可以通过它自带的 pregel API 直接求出一个节点的一跳到 N 跳的节点。
  3. neo4j 一条语句实现如下:
match (n:Person {name:"A"})-[:Follow]->(m)<-[:Follow]-(b) with n,b,count(m) as summ where (not (n)-[:Follow]-(b) )   return b,summ
  1. https://cloud.tencent.com/developer/article/1030789
  2. https://cloud.tencent.com/developer/article/1005999
3478 次点击
所在节点    Hadoop
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/527878

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX