nebula graph版本:3.3.0
nebula studio版本:3.5.0
部署方式:分布式
是否为线上版本:N
之前提过问题,在图上进行社区划分后,找出某个社区内部的重要节点,链接为:做完Louvain社区划分后,如何找到每个社区中的重要节点?
现在我想不仅计算社区内部的重要节点,还需要:
分析识别群体内部与外部通联密切的个体。(找社团内部的重要人物,它与社团外部联系密切的。)
分析识别与群体通联密切的外部个体。(找社团外部的重要人物,它与指定社团联系密切的。)
分析识别与两个或多个群体发生通联的个体。(找社团外部的重要人物,它与多个指定社团联系密切的。)
我初步想法是,比如对于2,用pyspark或python,统计所有节点的点度中心性,然后过滤出和某个社区有联系(出边或者入边与该社区内部节点联系)的节点,请问各位还有更好的想法吗?
明白!
对于1,我用nGQL语句是实现,先利用下面这个语句:
LOOKUP ON partition WHERE partition.louvain==94 YIELD id(vertex) AS id
| GO 1 STEPS FROM $-.id OVER * YIELD $-.id AS src, id($$) AS dst
查出94号社区中每个节点所连接的边,后面如何过滤出dst中,louvain != 94的节点呢?并计数。
我不知道后面应该怎么接where语句
后面的逻辑:
where src 的社区id != dst的社区id | groupby src yield(dst)
我刚又编辑了下,下面这个对于2(找社团外部的重要人物,它与指定社团联系密切的)的语句,应该是没问题吧?
LOOKUP ON partition WHERE partition .louvain == 94 YIELD id(vertex) AS id \
| GO 1 STEPS FROM $-.id OVER * BIDIRECT where properties($$).louvain != 94 yield id($$) as src,$-.id as dst
| GROUP BY $-.src YIELD $-.src as src,count(*) AS degree1
system
关闭
2023 年8 月 24 日 15:27
6
此话题已在 188 天后被自动关闭。不再允许新回复。