[ 
https://issues.apache.org/jira/browse/FLINK-1758?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14499846#comment-14499846
 ] 

ASF GitHub Bot commented on FLINK-1758:
---------------------------------------

Github user vasia commented on a diff in the pull request:

    https://github.com/apache/flink/pull/576#discussion_r28594561
  
    --- Diff: docs/gelly_guide.md ---
    @@ -316,28 +327,49 @@ DataSet<Tuple2<Long, Long>> verticesWithSum = 
graph.reduceOnNeighbors(
                                new SumValues(), EdgeDirection.IN);
     
     // user-defined function to sum the neighbor values
    -static final class SumValues implements NeighborsFunction<Long, Long, 
Double, Tuple2<Long, Long>> {
    -           
    -   public Tuple2<Long, Long> iterateNeighbors(Iterable<Tuple3<Long, 
Edge<Long, Double>, 
    -           Vertex<Long, Long>>> neighbors) {
    -           
    -           long sum = 0;
    -           long vertexId = -1;
    +static final class SumValues implements ReduceNeighborsFunction<Long, 
Long, Double> {
     
    -           for (Tuple3<Long, Edge<Long, Double>, Vertex<Long, Long>> 
neighbor : neighbors) {
    -                   vertexId = neighbor.f0;
    -                   sum += neighbor.f2.getValue();
    -           }
    -           return new Tuple2<Long, Long>(vertexId, sum);
    -   }
    +    public Tuple3<Long, Edge<Long, Long>, Vertex<Long, Long>> 
reduceNeighbors(Tuple3<Long, Edge<Long, Long>, Vertex<Long, Long>> 
firstNeighbor,
    +                                                                           
                                                                        
Tuple3<Long, Edge<Long, Long>, Vertex<Long, Long>> secondNeighbor) {
    +
    +           long sum = firstNeighbor.f2.getValue() + 
secondNeighbor.f2.getValue();
    +           return new Tuple3<Long, Edge<Long, Long>, Vertex<Long, 
Long>>(firstNeighbor.f0, firstNeighbor.f1,
    +                           new Vertex<Long, Long>(firstNeighbor.f0, sum));
    +    }
     }
     {% endhighlight %}
     
     <p class="text-center">
    -    <img alt="reduseOnNeighbors Example" width="70%" 
src="img/gelly-reduceOnNeighbors.png"/>
    +    <img alt="reduceOnNeighbors Example" width="70%" 
src="img/gelly-reduceOnNeighbors.png"/>
    --- End diff --
    
    good catch :+1: 


> Extend Gelly's neighborhood methods
> -----------------------------------
>
>                 Key: FLINK-1758
>                 URL: https://issues.apache.org/jira/browse/FLINK-1758
>             Project: Flink
>          Issue Type: Improvement
>          Components: Gelly
>    Affects Versions: 0.9
>            Reporter: Vasia Kalavri
>            Assignee: Andra Lungu
>
> Currently, the neighborhood methods only allow returning a single value per 
> vertex. In many cases, it is desirable to return several or no value per 
> vertex. This is the case in clustering coefficient computation, 
> vertex-centric jaccard, algorithms where a vertex computes a value per edge 
> or when a vertex computes a value only for some of its neighbors.
> This issue proposes to 
> - change the current reduceOnEdges/reduceOnNeighbors methods to use 
> combinable reduce operations where possible
> - provide groupReduce-versions, which will use a Collector and allow 
> returning none or more values per vertex.



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

Reply via email to