[
https://issues.apache.org/jira/browse/GIRAPH-652?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13648528#comment-13648528
]
Avery Ching commented on GIRAPH-652:
------------------------------------
Hi Wang, if I understand, you are trying to load edge input only data correct?
You should already be able to do this if you only load an edge input format.
The vertices are created automatically if they do not exist.
> Not support only with edge input data in some algorithms.
> ---------------------------------------------------------
>
> Key: GIRAPH-652
> URL: https://issues.apache.org/jira/browse/GIRAPH-652
> Project: Giraph
> Issue Type: Wish
> Components: graph
> Affects Versions: 1.0.0
> Reporter: Wang Xu
> Priority: Minor
> Fix For: 1.0.0
>
>
> There are two types of input vertex-centric and edge-centric. Some algorithms
> need vertex centric data, such as pairs of vertex ids and initial page ranks.
> Some algorithms only look at edges. For example, connected components can be
> run without any vertex values.
> In some conditions , we have only edge-centric data , have not vertex data .
> Convert edge-centric data to vertex-centric data is not bad, but is not
> better.
> In my job , I modify EdgeInputSplitsCallable.java to support load vertex auto
> when loading edge。
> My mainly modify is:
> {code:java}
> graphState.getWorkerClientRequestProcessor().sendEdgeRequest(
> sourceId, readerEdge);
> context.progress(); // do this before potential data transfer
> ++inputSplitEdgesLoaded;
>
> //modify begin
> Vertex<I, V, E, M> vertex = this.configuration.createVertex();
> if (vertex.getValue() == null) {
> vertex.setValue(configuration.createVertexValue());
> }
> vertex.setConf(configuration);
> vertex.setGraphState(graphState);
> vertex.initialize(edgeReader.getCurrentEdge().getTargetVertexId(),
> vertex.getValue());
>
> PartitionOwner partitionOwner =
> bspServiceWorker.getVertexPartitionOwner(vertex.getId());
> graphState.getWorkerClientRequestProcessor().sendVertexRequest(
> partitionOwner, vertex);
> // modify end
> // Update status every VERTICES_UPDATE_PERIOD edges
> if (inputSplitEdgesLoaded % VERTICES_UPDATE_PERIOD == 0) {
> totalEdgesMeter.mark(VERTICES_UPDATE_PERIOD);
> {code}
> After do it , my giraph job can only load edge data in any examples。
> I wish a similar features can be add into in future version。
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira