spark-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andy Huang (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (SPARK-7894) Graph Union Operator
Date Wed, 27 May 2015 10:35:17 GMT

     [ https://issues.apache.org/jira/browse/SPARK-7894?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Andy Huang updated SPARK-7894:
------------------------------
    Description: 
This operator aims to union two graphs and generate a new graph directly. The union of two
graphs is the union of their vertex sets and their edge families.Vertexes and edges which
are included in either graph will be part of the new graph.

bq.  G ∪ H = (VG ∪ VH, EG ∪ EH).

The below image shows a union of graph G and graph H

!union_operator.png|width=600px,align=center!

A Simple interface would be:

bq. def union[VD: ClassTag, ED: ClassTag](other: Graph[VD, ED]): Graph[VD, ED]


However, inevitably vertexes and edges overlapping will happen between borders of graphs.
It is necessary to consider how to handle this case for both Vertex and Edge. For vertex,
it's quite nature to just make a union and remove those duplicate ones. But for edges, a mergeEdges
function seems to be more reasonable.

bq. def union[VD: ClassTag, ED: ClassTag](other: Graph[VD, ED], mergeEdges: (ED, ED) =>
ED): Graph[VD, ED]


  was:
This operator aims to union two graphs and generate a new graph directly. The union of two
graphs is the union of their vertex sets and their edge families.Vertexes and edges which
are included in either graph will be part of the new graph.

bq.  G ∪ H = (VG ∪ VH, EG ∪ EH).

The below image shows a union of graph G and graph H

!union_operator.png|width=600px,align=center!

A Simple interface would be:

bq. def union[VD: ClassTag, ED: ClassTag](other: Graph[VD, ED]): Graph[VD, ED]


However, inevitably vertexes and edges overlapping will happen between borders of graphs.
It is necessary for interface to consider how to handle this case for both Vertex and Edge.
For vertex, it's quite nature to just make a union and remove those duplicates vertexes. But
for edges, a mergeEdges function seems to be more reasonable.

bq. def union[VD: ClassTag, ED: ClassTag](other: Graph[VD, ED], mergeEdges: (ED, ED) =>
ED): Graph[VD, ED]



> Graph Union Operator
> --------------------
>
>                 Key: SPARK-7894
>                 URL: https://issues.apache.org/jira/browse/SPARK-7894
>             Project: Spark
>          Issue Type: Improvement
>          Components: GraphX
>            Reporter: Andy Huang
>              Labels: graph, union
>         Attachments: union_operator.png
>
>
> This operator aims to union two graphs and generate a new graph directly. The union of
two graphs is the union of their vertex sets and their edge families.Vertexes and edges which
are included in either graph will be part of the new graph.
> bq.  G ∪ H = (VG ∪ VH, EG ∪ EH).
> The below image shows a union of graph G and graph H
> !union_operator.png|width=600px,align=center!
> A Simple interface would be:
> bq. def union[VD: ClassTag, ED: ClassTag](other: Graph[VD, ED]): Graph[VD, ED]
> However, inevitably vertexes and edges overlapping will happen between borders of graphs.
It is necessary to consider how to handle this case for both Vertex and Edge. For vertex,
it's quite nature to just make a union and remove those duplicate ones. But for edges, a mergeEdges
function seems to be more reasonable.
> bq. def union[VD: ClassTag, ED: ClassTag](other: Graph[VD, ED], mergeEdges: (ED, ED)
=> ED): Graph[VD, ED]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org


Mime
View raw message