nebulagraph algorithm 调用Louvain算法报错

您能帮我看看这三个参数代表什么意思嘛? :smile:

参考这个。

OK 看明白了! 感谢您!

因为算法内部是采用 当前社区内节点的最小id作为该社区的编号,不同社区内最小的节点id通常不连续的

1 个赞

明白了! 谢谢!! :kissing_heart:

老师您好! 我又有个问题:
我采用提交algorithm算法包的方式跑louvain算法,将application.conf中的data source和data sink都设置为nebula,nebula write中的type改为“update”。

然后运行,发生如下错误:


这个是怎么回事呢?

插入的语句过多了,试试少点小批量插入看看。

目前的数据量是:


我如果将application.conf配置文件中的nebula-write type 改为“inset”,就不会出现这个错误,但是那样会将其他属性值(比如name,age)变为NULL。

这个assert是spark connector在更新数据的时候做的校验,algorithm里面给出的默认batch是1000,这个该应改小一些,我提个pr 你可以用最新的algorithm包

老师 您好 改小之后就解决了吗?如何改小呢?我现在的algorithm是3.0.0的

你可以自己按照这个pr改一下值,然后本地打包。 或者从这里下载 最新时间的jar包Index of /repositories/snapshots/com/vesoft/nebula-algorithm/3.0-SNAPSHOT


老师 我应该下载这个jar包吗?到那时我下载了之后,替换原来的nebula-algorithm-3.0.0.jar,然后运行,出现下面的错误:

没有错误啊,你看一下全的日志存到哪里了

老师 我按照您那个pr修改了下值,重新打包了一下,是可以用的。
我在数据中先增加了louvain属性:


然后修改application.conf中nebula.write为update,再执行下面语句:

spark-submit --master "local" --class com.vesoft.nebula.algorithm.Main /opt/offline/nebula/nebula-algorithm-3.0.0.jar -p /opt/offline/nebula/application.conf

跑出的结果中,我发现有些节点的louvain属性仍然是空值,这是因为它不属于任意社区吗?

你space边数据中点的数据量是多少,和你tag player中点的数据量一样吗

我配置文件中,所用的边类型是follow:

我查了下在这个是图空间中,player节点为51个:


锁定关系为follow后,查询所有player节点是44个(其中有2个节点的louvain值为NULL):

我在想,是因为虽然player节点总数为51,但是跟follow关系有联系的并没有那么多,可能为40,也可能为30,所以不涉及follow关系的player节点的louvain属性就是空,是这样吗?

是的,因为算法的数据是边,只针对边数据中的点进行计算。

好的 谢谢您!

不客气

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