Hi, Another workaround is to use an abstract class as A and then implement it concretely in the two ways you need it.
If I'm not mistaken, aggregators are the recommended way to communicate between master.compute() and (worker's) vertex.compute() in Giraph. I personally don't know if it's the *only* way. Young On Sun, Jan 12, 2014 at 5:30 AM, Luo <luo...@163.com> wrote: > > Hi, Young > That is a choice. > But I just want transform A or B when each vertex computing , now I need > transform A and B. And in my program, the A and B are both somehow large. > Is there another way to share global variable between each vertex beside > getAggregatedValue() ? > thanks a lot ! > > Luo > > > > > At 2014-01-11 01:17:21,"Young Han" <young....@uwaterloo.ca> wrote: > > Hi, > > One way, though not a very clean way, would be to create an object that > encapsulates what you want to store in A and B. So, say you want A to be a > DoubleWritable and B to be a Writable object with two integers. Then you > could just create a Writable object having three fields: double, int, int. > You'll have to implement a custom Writable class, but you won't need a > special aggregator. > > Young > > > On Fri, Jan 10, 2014 at 2:54 AM, Luo <luo...@163.com> wrote: > >> hi all: >> org.apache.giraph.aggregators has these tow methods: void >> aggregate<http://giraph.apache.org/giraph-core/apidocs/org/apache/giraph/aggregators/Aggregator.html#aggregate(A)> >> (A<http://giraph.apache.org/giraph-core/apidocs/org/apache/giraph/aggregators/Aggregator.html> >> value) >> A >> getAggregatedValue<http://giraph.apache.org/giraph-core/apidocs/org/apache/giraph/aggregators/Aggregator.html#getAggregatedValue()> >> () >> >> >> Now I want to use aggregate() in vertex_program to send value of type A >> for global aggregating, however, >> I want the output of custom aggregator is type B . >> >> that is to say , >> void aggregate(A value) >> B getAggregatedValue() >> >> Is there any idea for this? >> Thank a lot ! >> >> >> ======================== >> Luo >> >> >> > > >