KT - the key type of top verticesKB - the key type of bottom verticesVVT - the vertex value type of top verticesVVB - the vertex value type of bottom verticesEV - the edge value typepublic class BipartiteGraph<KT,KB,VVT,VVB,EV> extends Object
Graph. Edges can only exist between a pair of vertices from different vertices
sets. E.g. there can be no vertices between a pair of top vertices.
Bipartite graphs are useful to represent graphs with two sets of objects, like researchers and their publications, where an edge represents that a particular publication was authored by a particular author.
Bipartite interface is different from Graph interface, so to apply algorithms that work on a regular graph
a bipartite graph should be first converted into a Graph instance. This can be achieved by using
the projection methods.
| Modifier and Type | Method and Description |
|---|---|
static <KT,KB,VVT,VVB,EV> |
fromDataSet(org.apache.flink.api.java.DataSet<Vertex<KT,VVT>> topVertices,
org.apache.flink.api.java.DataSet<Vertex<KB,VVB>> bottomVertices,
org.apache.flink.api.java.DataSet<BipartiteEdge<KT,KB,EV>> edges,
org.apache.flink.api.java.ExecutionEnvironment context)
Create bipartite graph from datasets.
|
org.apache.flink.api.java.DataSet<Vertex<KB,VVB>> |
getBottomVertices()
Get dataset with bottom vertices.
|
org.apache.flink.api.java.DataSet<BipartiteEdge<KT,KB,EV>> |
getEdges()
Get dataset with graph edges.
|
org.apache.flink.api.java.DataSet<Vertex<KT,VVT>> |
getTopVertices()
Get dataset with top vertices.
|
Graph<KB,VVB,Projection<KT,VVT,VVB,EV>> |
projectionBottomFull()
Convert a bipartite graph into a graph that contains only bottom vertices.
|
Graph<KB,VVB,org.apache.flink.api.java.tuple.Tuple2<EV,EV>> |
projectionBottomSimple()
Convert a bipartite graph into an undirected graph that contains only bottom vertices.
|
Graph<KT,VVT,Projection<KB,VVB,VVT,EV>> |
projectionTopFull()
Convert a bipartite graph into a graph that contains only top vertices.
|
Graph<KT,VVT,org.apache.flink.api.java.tuple.Tuple2<EV,EV>> |
projectionTopSimple()
Convert a bipartite graph into an undirected graph that contains only top vertices.
|
public static <KT,KB,VVT,VVB,EV> BipartiteGraph<KT,KB,VVT,VVB,EV> fromDataSet(org.apache.flink.api.java.DataSet<Vertex<KT,VVT>> topVertices, org.apache.flink.api.java.DataSet<Vertex<KB,VVB>> bottomVertices, org.apache.flink.api.java.DataSet<BipartiteEdge<KT,KB,EV>> edges, org.apache.flink.api.java.ExecutionEnvironment context)
topVertices - dataset of top vertices in the graphbottomVertices - dataset of bottom vertices in the graphedges - dataset of edges between verticescontext - Flink execution contextpublic org.apache.flink.api.java.DataSet<Vertex<KT,VVT>> getTopVertices()
public org.apache.flink.api.java.DataSet<Vertex<KB,VVB>> getBottomVertices()
public org.apache.flink.api.java.DataSet<BipartiteEdge<KT,KB,EV>> getEdges()
public Graph<KT,VVT,org.apache.flink.api.java.tuple.Tuple2<EV,EV>> projectionTopSimple()
The simple projection performs a single join and returns edges containing the bipartite edge values.
Note: KT must override .equals(). This requirement may be removed in a future release.
public Graph<KB,VVB,org.apache.flink.api.java.tuple.Tuple2<EV,EV>> projectionBottomSimple()
The simple projection performs a single join and returns edges containing the bipartite edge values.
Note: KB must override .equals(). This requirement may be removed in a future release.
public Graph<KT,VVT,Projection<KB,VVB,VVT,EV>> projectionTopFull()
The full projection performs three joins and returns edges containing the connecting vertex ID and value, both top vertex values, and both bipartite edge values.
Note: KT must override .equals(). This requirement may be removed in a future release.
public Graph<KB,VVB,Projection<KT,VVT,VVB,EV>> projectionBottomFull()
The full projection performs three joins and returns edges containing the connecting vertex ID and value, both bottom vertex values, and both bipartite edge values.
Note: KB must override .equals(). This requirement may be removed in a future release.
Copyright © 2014–2019 The Apache Software Foundation. All rights reserved.