我有一个Spark Graphx图,我想检查两个顶点之间是否存在边缘。 在Spark Graphx中执行此操作的首选方法是什么?
更具体地说,我想计算一个列表中所有顶点与另一个列表中所有顶点之间的所有边。
我试过了:
graph.edges.filter { case Edge(src, dst, prop) => ids1.contains(src)&&ids2.contains(dst)}.count
其中ids1
和ids2
是包含顶点id的两个数组。但这不起作用,我得到错误:
org.apache.spark.SparkException: Task not serializable
我对Graphx不太熟悉所以任何帮助都非常感谢。
答案 0 :(得分:1)
这对我有用:
graph.edges.filter(edge=>( ids.contains(edge.srcId) && ids.contains(edge.dstId))