Louvain返回值问题

Louvain算法的返回值有点费解。

看了相关的帖子,并没有解决我的问题,想搞懂所有输出需要看源码,自实现的源码比较长,阅读成本高,因此来这里求大神帮解答。

传入1万+的边,包含的顶点是1000+,但系统返回的结果只有2列23行,2列的值还是一样的

我的目标是知道每个顶点的社群ID,就像标签传播算法的返回值一样。

请问Louvain算法包的返回值是不是做了限制啊?
我的结果存储代码是:
result.repartition(1).write.format(“csv”).save(“file:///D:\隐私屏蔽”)
按理说所有结果都在那个csv里了,所以觉得这个输出很费解

louvain结果有两列,第一列是vertexId,第二列是该节点所属社区的社区id。
社区id是当前社区内 最小的vertexId。

结果的行数应该是顶点数量,不应该只有23行,你输出到hdfs也是23行么

1 个赞

我直接输出本地了,就是那么多数据。用show(100) 也是只有20+,如果你们认为应该所有都输出了,但是现在测下来只有那么点,是不是源码里由bug呀?还是说我们参数没配好?我看另外一个人也有这个问题。

同样的方法用标签传播那个包是没问题的,返回的csv就是1000+个点
所以我觉得排除spark数据存本地丢数据的问题,多方确定返回值确实只有20几行

这个我们记一下issue,查一下是否把社区给聚合了。 @steam

1 个赞

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