algorithm中的jaccard算法中参数应如何设置?

nebula graph版本:3.3.0
nebula studio版本:3.5.0
spark版本:2.4
部署方式:分布式
硬盘:机械硬盘
是否为线上版本:N

===========================================================

我想在ldbc数据集上做隐藏关系挖掘,看了思为老师的一边文章后,了解到需要用jaccard算法,计算节点之间的相似性。
nebula algorithm算法包中的jaccard参数如下:
image
只有一个tol参数,应该是相似度阈值。
我通过提交算法包去运行,报错说 vertex field _id does not exist in dataframe

我尝试在application.conf中增加jaccard算法参数IDS1,结果还是一样。
请问这是因为参数没写对吗?我应该如何解决这个问题呢?

1 个赞

jaccard算法结果与其他算法不同,不是点id, 算法值的形式
而是 源点id,目标点id,相似度值 的形式

所以该结果需要存入文件,不能直接存到nebula的tag中

配置文件中 data.sin可以配置成csv

好的 明白了!谢谢!
我运行之后,输出了200个csv文件,其中一个部分截图为:


所以,想再问两个问题:

  1. 结果中 相似度有0.01的,也有1的,配置文件中jaccard参数tol设置的是1,我纳闷为什么不是只将相似值等于1的输出出来呢?tol的含义不是过滤掉小于tol的值吗?
  2. 如何让输出结果整合为一个csv,而不是多个呢?


2. algorithm没有暴露将结果进行repartition的配置,输出结果是按照结果dataframe的partition数来输出的,你如果是通过自己写代码调用lib算法的方式可以在输出结果前执行以下repartition(1)

1 个赞

好的,明白了, 谢谢!