Apache Flink - Gelly - 从边缘列表创建数据集
Apache Flink - Gelly - Create a dataset from a list of edges
我有一个这样创建的顶点和边的列表:
val v1 = new Vertex(1L, "foo")
val v2 = new Vertex(2L, "bar")
val e1 = new Edge(v1, v2, 0.5)`
并想使用 Graph.fromDataSet 方法(或任何其他方法)创建 Flink 图。如何将这些边和顶点转换为 Flink 可读的内容?
谢谢!!
给定顶点列表 val vertices: Seq[Vertex[Long, String]] = ...
和边 val edges: Seq[Edge[Long, String]] = ...
您可以使用 Graph.fromCollection
方法创建一个 Graph
:
val env = ExecutionEnvironment.getExecutionEnvironment
val vertices = Seq(new Vertex[Long, String](1L, "foo"), new Vertex[Long, String](2L, "bar"))
val edges = Seq(new Edge[Long, String](1L, 2L, "foobar"))
val graph = Graph.fromCollection(vertices, edges, env)
值得注意的是,你必须导入org.apache.flink.graph.scala.Graph
的Scala版本。
或者,您也可以先使用 ExecutionEnvironment
创建一个 edgeDataset: DataSet[Edge[Long, String]]
和一个 vertexDataSet: DataSet[Vertex[Long, String]]
。然后可以调用 Graph.fromDataSet
方法创建 Graph
:
val vertexDataset = env.fromCollection(vertices)
val edgeDataset = env.fromCollection(edges)
val graph = Graph.fromDataSet(vertexDataset, edgeDataset, env)
我有一个这样创建的顶点和边的列表:
val v1 = new Vertex(1L, "foo")
val v2 = new Vertex(2L, "bar")
val e1 = new Edge(v1, v2, 0.5)`
并想使用 Graph.fromDataSet 方法(或任何其他方法)创建 Flink 图。如何将这些边和顶点转换为 Flink 可读的内容?
谢谢!!
给定顶点列表 val vertices: Seq[Vertex[Long, String]] = ...
和边 val edges: Seq[Edge[Long, String]] = ...
您可以使用 Graph.fromCollection
方法创建一个 Graph
:
val env = ExecutionEnvironment.getExecutionEnvironment
val vertices = Seq(new Vertex[Long, String](1L, "foo"), new Vertex[Long, String](2L, "bar"))
val edges = Seq(new Edge[Long, String](1L, 2L, "foobar"))
val graph = Graph.fromCollection(vertices, edges, env)
值得注意的是,你必须导入org.apache.flink.graph.scala.Graph
的Scala版本。
或者,您也可以先使用 ExecutionEnvironment
创建一个 edgeDataset: DataSet[Edge[Long, String]]
和一个 vertexDataSet: DataSet[Vertex[Long, String]]
。然后可以调用 Graph.fromDataSet
方法创建 Graph
:
val vertexDataset = env.fromCollection(vertices)
val edgeDataset = env.fromCollection(edges)
val graph = Graph.fromDataSet(vertexDataset, edgeDataset, env)