graphx中不同类型的边

时间:2016-07-14 23:56:47

标签: inheritance apache-spark spark-graphx

如何在同一个graphX图中添加不同类型的边。例如,节点A和节点B之间的边可以具有String属性,节点X和节点Y之间的边可以具有(Int,Int)attr。

有没有办法在graphX中实现边缘继承? 任何人都可以提供一个例子吗?

1 个答案:

答案 0 :(得分:0)

使用Graph上的VD and ED类型参数指定图表的顶点和边缘类型。只要它们共享一个共同的超类,您就可以在不同的边上存储不同类型的边数据。为此,在构造图形时将公共超类作为ED类型参数传递。

在您的示例中,String(Int, Int)的常见超类型为Any。您可以使用以下两种类型的边缘属性构建图形:

val edges = List[Edge[Any]](
  Edge(1, 2, "foo"),
  Edge(3, 4, (123, 456)))

Graph.fromEdges(sc.parallelize(edges), 1)