如何在AWS Neptune中通过KeyId筛选groupCount大于1的重复数据?
解决AWS Neptune中过滤重复KeyId(仅保留计数>1的项)
嗨,我明白你的需求了——你已经通过groupCount()找到了重复的KeyId,但现在只想保留那些出现次数大于1的结果,过滤掉只出现一次的。这在Gremlin里很容易实现,只需要对groupCount()的结果做进一步的筛选和转换就行。
最终查询语句
g.V().has('keyId') .groupCount().by('keyId') .unfold() .filter(select(values).is(gt(1))) .toMap(keys, values)
步骤解释
让我一步步拆解这个查询,帮你理解每部分的作用:
groupCount().by('keyId'):这是你已经用到的步骤,用来统计每个KeyId的出现次数,返回一个Map(比如你给出的[HJ001:2, HJ002:1,HJ003:1,HJ004:2,HJ005:3])。unfold():把这个Map拆分成一个个独立的键值对(Entry对象),比如变成HJ001=2、HJ002=1这样的单独条目。filter(select(values).is(gt(1))):筛选出那些值(也就是计数)大于1的条目,这一步就把HJ002、HJ003这类只出现一次的排除掉了。toMap(keys, values):把筛选后的键值对重新组合成Map格式,和你最初得到的结果结构一致,方便查看。
测试结果
用你提供的数据源执行这个查询后,输出会是:
==> [HJ001:2, HJ004:2, HJ005:3]
这样就完美得到了你想要的、仅包含重复KeyId及其计数的结果啦!
内容的提问来源于stack exchange,提问作者UKR
相关产品推荐
相关产品推荐

