如何检查Spark Graphx图形中是否存在边缘
问题描述:
我有一个Spark Graphx图形,我想检查两个顶点之间是否存在边。 在Spark Graphx中执行此操作的首选方法是什么?如何检查Spark Graphx图形中是否存在边缘
更具体地说,我想计算一个列表中所有顶点之间的所有边到另一个列表中的所有顶点。
我尝试这样做:
graph.edges.filter { case Edge(src, dst, prop) => ids1.contains(src)&&ids2.contains(dst)}.count
其中ids1
ids2
和是包含顶点IDS两个阵列。但这不起作用,我得到的错误:
org.apache.spark.SparkException: Task not serializable
我不是很熟悉Graphx,所以任何帮助,高度赞赏。
答
这个工作对我来说:
graph.edges.filter(edge=>(ids.contains(edge.srcId) && ids.contains(edge.dstId))