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(DataSet<Vertex<KT,VVT>> topVertices,
DataSet<Vertex<KB,VVB>> bottomVertices,
DataSet<BipartiteEdge<KT,KB,EV>> edges,
ExecutionEnvironment context)
Create bipartite graph from datasets.
|
DataSet<Vertex<KB,VVB>> |
getBottomVertices()
Get dataset with bottom vertices.
|
DataSet<BipartiteEdge<KT,KB,EV>> |
getEdges()
Get dataset with graph edges.
|
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,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,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(DataSet<Vertex<KT,VVT>> topVertices, DataSet<Vertex<KB,VVB>> bottomVertices, DataSet<BipartiteEdge<KT,KB,EV>> edges, 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 DataSet<Vertex<KT,VVT>> getTopVertices()
public DataSet<Vertex<KB,VVB>> getBottomVertices()
public DataSet<BipartiteEdge<KT,KB,EV>> getEdges()
public Graph<KT,VVT,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,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–2021 The Apache Software Foundation. All rights reserved.