如何取出rank小于某个值的最大rank对应的边

nebula 版本:v3.2.0
部署方式:分布式
安装方式: RPM
是否为线上版本:Y
spark 版本:2.4.3
python 版本:3.7
nebula_spark_connector 版本:3.0.0

比如我需要取出所有rank 小于8的边 ,在此基础上取出不同边中最大rank所对应的边,示例如下图所示:需求返回红色标记的两条边

手册里没有发现相关解决方案

意思就是没有直接办法,自己写

 $var=(go from "player102" over follow where follow._rank<10 yield follow._rank as rank,follow._src as src| yield $-.src as src,max($-.rank) as maxRank);
go from $var.src over follow where follow._rank==$var.maxRank yield edge as e
1 个赞

感谢回复,但是需求可能不太一样 我举的例子可能不太好,实际情况如下:


比如求rank < 8 的最大rank ,如上图不同的边的最大rank可能不同,有些边最大rank是6,有些边最大rank是7,需求是这两条边都要返回

go from "player102" over follow where follow._rank<10 yield follow._src as src, follow._dst as dst, follow._rank as rank | yield $-.src as src, $-.dst as dst, max($-.rank) as maxRank
go from "Tim Duncan" over like where like._rank<10 yield like._src as src, like._dst as dst, edge as e 
| yield $-.src, $-.dst, max($-.e) as maxRankEdge
1 个赞

管道符传递rank的值nsql执行报错 这个是在你这个语句基础上进行了后续操作,但是执行报错,麻烦您帮忙看一下,谢谢

这个是可以的,非常感谢

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