Hey,
yah yah I got your point. Thank you so so much for your super help.
I will come her and show you my work if I succeed .

Thank you again
On Mar 25, 2014, at 1:12 PM, Pascal Jäger <[email protected]> wrote:

> Hey,
> 
> I think you can do both.
> you can encode and decode your values to a json formatted text every time you 
> write them to or read them from your value classes.
> I personally added some logic to my VertexValue, thus I don’t encode my data.
> 
> So for the latter you will need to write custom input formats because you now 
>  need to create an instance of your edge and/or vertex value class.
> The input format is the place where you can do this.
> 
> Take the LongLongNullTextInputFormat in giraph.io.formats.
> Replace the NullWritable with you custom EdgeValue and adjust the 
> protected Iterable<Edge<LongWritable, NullWritable>> getEdges(String[] 
> tokens) 
> 
> to
> 
> protected Iterable<Edge<LongWritable, CustomEdgeValue>> getEdges(String[] 
> tokens) 
> 
> and change the body to create you your custom value.
> 
> You can also look at the Okapi Files. They also provide nice implementations: 
> http://grafos.ml or
> https://github.com/grafos-ml/okapi
> 
> Hope that helps
> 
> Pascal
> 
> Am 25.03.2014 um 17:28 schrieb Rana Althunyan <[email protected]>:
> 
>> Hi again Pascal
>> That is realy very helpful. I don’t know how can I thank you.
>> 
>> I have another question, do I need to create a new custom input format? I do 
>> not think so. 
>> I can use jason format because the other edge values i will set them in 
>> compute function. do you agree with me.
>> 
>> Thank you so so much
>> Rana
>> On Mar 25, 2014, at 2:42 AM, Pascal Jäger <[email protected]> wrote:
>> 
>>> Hi Rana,
>>> 
>>> all you need to do is writing your own EdgeValue and VertexValue class by 
>>> implementing the Writable Interface.
>>> You can use any field you like. Just make sure you write or read them in 
>>> the Writeable methods.
>>> 
>>> Here’s VertexValue I use (There may be better ways for writing list, but it 
>>> works just fine)
>>> 
>>> http://pastebin.com/VpMVFuuc
>>> 
>>> In your compute method get the VertexValue with vertex.getValue() and apply 
>>> your changes. That’s it.
>>> Whatever you write into it in step one, you will be able to read or modify 
>>> in step two.
>>> 
>>> Regards
>>> 
>>> Pascal
>>> 
>>> 
>>> Am 25.03.2014 um 07:14 schrieb Rana Althunyan <[email protected]>:
>>> 
>>>> Hello Pankaj Malhotra,
>>>> 
>>>> Yes, I need to assign more than values to the edge. I need the edge has 
>>>> [flow, capacity, distinction, source] 
>>>> You says I need to create a new class type for edge, How can I pass it to 
>>>> json class and how can I make json class read my new edge object.
>>>> 
>>>> I need to submit my code next week, so any answer or recommendation will 
>>>> definitely help.
>>>> 
>>>> thanks
>>>> Rana
>>>> 
>>>> On Mar 24, 2014, at 7:29 AM, Pankaj Malhotra <[email protected]> 
>>>> wrote:
>>>> 
>>>>> If I get your point-1 right, you want to have a vertex class type other 
>>>>> than the ones available, for example: Text. If this is what you want, you 
>>>>> can have a class having as many fields as you want. Then convert the 
>>>>> objects of that class to Json objects using Gson for example. Then, you 
>>>>> can use the Json string to set the fields of the Text class.
>>>>> 
>>>>> 
>>>>> On 22 March 2014 04:50, Rana Althunyan <[email protected]> wrote:
>>>>> Hello experts,
>>>>> > I really need your help. I am new to Giraph. I have project on pregel 
>>>>> > paper, and I need to implement One algorithm via Apache Giraph.The 
>>>>> > algorithm is push-relabel flow algorithm. Actually when I started to 
>>>>> > adapt the algorithm to fit to Giraph I found some problems. I will list 
>>>>> > them.
>>>>> >
>>>>> > 1- Because any type of data structure are not allowed in Giraph how can 
>>>>> > I store excess flow and distance value for each vertex.
>>>>> > 2- When the excess value becomes zero for any vertex, I wanna keep 
>>>>> > vertex flow  during future supersteps even if the vertex received 
>>>>> > messages.
>>>>> > 3- The last point, when I want to send a flow to a vertex, i need store 
>>>>> > two values of residual graph  the remaining value from the edge 
>>>>> > capacity and the amount of flow that we use so far.  How can I do that. 
>>>>> > How can I keep these two values for each vertex in the graph.
>>>>> >
>>>>> > these following questions may are easy for you ..
>>>>> > 4- How can I determine the last vertex as a sink.
>>>>> > 5- How can I get the number of all vertexes from the input file .
>>>>> >
>>>>> > I know I have written many question.I searched a lot in the Internet, 
>>>>> > but I did not find any discussion regards to this algorithm
>>>>> >
>>>>> > sorry and thank you.I appreciate any help or recommendations
>>>>> > Rana
>>>>> 
>>>>> 
>>>> 
>>> 
>> 
> 

Reply via email to