V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
engineer9
V2EX  ›  Hadoop

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

  •  
  •   engineer9 · 2019-01-17 11:51:13 +08:00 · 3421 次点击
    这是一个创建于 1897 天前的主题,其中的信息可能已经有所发展或是发生改变。

    好友关系:

    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
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3400 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 11:18 · PVG 19:18 · LAX 04:18 · JFK 07:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.