有使用nebula进行idmapping的实践经验吗?

有使用nebula进行idmapping的实践经验吗? 或者有打算用nebula来计算idmapping的想法吗?希望可以交流一下

:crazy_face: 大兄弟有没有兴趣把这个做成一个项目,来参加我们的 Hackathon 呀 Nebula Hackathon 2021

我没那个实力啊,我现在都寸步难行

可以交流一下吗? 现在正在尝试IDmapping 也进入了瓶颈期!

完全可以
大哥,可不可以加个联系方式,比如微.,Q.

没问题 这东西能私聊嘛 我看你这有这个才注册了号 加微信把

已经加了

楼上两位有遇到具体啥问题吗?非常欢迎在这里公开讨论啊。

1 个赞

我数据量太大了,不知道怎么批量操作,而且算法只支持id为整数的

算法的话,如果不是 jar 包 submit 而是在代码里提交,有方法可以对 string id 处理一下

你发给我的这个帖子也没有讲清楚边上的string id 如和转成Long id啊??

哥,能不能将清楚一点怎么用dense_rank把边两侧的顶点转为long,而且两点同一类型的边我是存在多条的,设置了权重

我理解这个只是为了string vid 跑算法在调用之前的一个绕过方式,转换只是运行算法期间多转一套,不是持久 mapping。不知道能不能满足你的需求,方法是 @nicole 提的哈,我 spark 、dataframe 处理不熟悉,要不就帮你写例子的 pagerank 代码了

  • string id 转long, 转的是点id, 即便传入的是边数据,也是要对边上的源点目标点的点id进行转换。
  • (srcId+dstId)去重后就是拓扑图中所有点id, 对所有点id 利用dense_rank编码, 得到
    player101,0
    -team204,1
  • 这样的点编码后的映射文件。利用点编码后的映射文件,替换掉边中的srcId和dstId, 得到0->1的边数据。

@nicole 有时间能给个最小可执行例子么? 比如在 basketballplayer 数据上在空中 dense_rank 跑 pagerank ,把结果输出映射回原来的 string id​:grin:

这个注意不错,希望大佬能尽快附上这么一个实例

可以期待 nebula-algorithm 里的 example,很快 @nicole 会加上的哈

唉,结果歪楼了:roll_eyes:

1 个赞

你可以参考下这个算法示例,里面展示了如何通过api调用的形式进行算法调用,以及如何针对string 类型的id进行id encode和算法结果的id decode
https://github.com/Nicole00/nebula-algorithm/blob/example/example/src/main/scala/com/vesoft/nebula/algorithm/PageRankExample.scala

1 个赞

我是直接写的sparksql,先将两个顶点的数据全部捞出来distinct,然后在row_number生成新的encode_df,去和原来的df join把src和dst替换掉,最后跑完算法之后再用encode_df转换回原始的vid

2 个赞

嗯嗯 好的 谢谢 我也是这样来打算的

lz和 @CrowHidden 后来如何了哈,可以分享一下你们的id-mapping进展么?
歪回来~~