如何统计图中每一个节点的二度出度值呢?

我验证了下,这个跑得快!我还想问下:

  1. 这里统计的out_degree2是不是不包括一度的出边统计量?直接统计的就是第二度出度的数量,对吧?
  2. GO 2 STEPS FROM "player100" OVER follow YIELD id($^) AS src, id($$) AS dst那么所得到的两跳的边都是follow类型吗?
  3. GO 2 STEPS FROM "player100" OVER * YIELD id($^) AS src, type(edge) as edge_type,id($$) AS dst 结果中,若edge_type为follow,是指两跳的关系都是follow,还是只是最后一条关系为follow呢?
  1. 对的。
  2. 是的。
  3. 最后一条。

明白了 谢谢!

你都spark上 louvain上算出来了,把二度的部分一起算了就行了。何必来回倒腾一遍呢。。。

您好 您可以再具体点解释下嘛?好像我的流程确实有点麻烦。
我的业务逻辑是这样的:在图上先做社区划分,然后针对指定的社区,统计社区内每个节点的二度出边数。
您如果有更好思路和方法,麻烦点拨一下 :smiley:

如何统计图中每一个节点的二度出度值呢? - #4,来自 nicole 就是这个

nebula算法包中如何将数据读出来构造成graphx的graph呢?我只会用pyspark读取指定关系子图,然后转换为networkx图,调用其中的点度中心性算法,但是二度不会求。。

这个是用pyspark代码实现嘛?

  1. 给你一个小图放在networkx里面,你会取2度不
  2. 给你一个spark dataframe,你会用不?

emmm…目前只会统计一度的 :joy:。我之前将子图转化为networkx图后,调用nx.degree_centrality(g)求出每个点的点度中心性,也就是1度关系数。我们有个业务场景,需要在社区内统计每个节点的2度的出边关系数,并且要求2度出边关系数 > 1度出边关系数。。。所以就到处尝试怎么统计2度关系数。

我一直感觉麻烦点在于求社区内的节点关系数,所以不能直接用算法包中的degreestatics算法(算法包好像针对关系子图的)。然后我感觉,就需要用pysaprk拿出关系子图,再取出社区子图,再转化为Networkx图,但是我还是不会求2度出边统计。。 :sob:

这个会,先转换为Graphframe,然后再转化为networkx图,去调用nx.degree_centrality(g)或者nx.out_degree_centrality(g)。好像有点麻烦。。。我之前是这么做的。在pyspark环境下,都转化为networkx去做,但也都只统计了一度的出边关系数 :joy: 2度的不知道怎么统计。。

2度一般没有直接的命令,都要有少量编程的。
spark上可能并发度能好一点,这样快一点

OK 谢谢您

我先用这个实现 感觉还挺快的

1 个赞

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。