Sorry I was not clear: 
I meant the initial DataSet is changing. Not the ds. :)

  
> Am 22.03.2016 um 15:28 schrieb Till Rohrmann <till.rohrm...@gmail.com>:
> 
> From the code extract I cannot tell what could be wrong because the code 
> looks ok. If ds changes, then your normalization result should change as 
> well, I would assume.
> 
> 
> On Tue, Mar 22, 2016 at 3:15 PM, Lydia Ickler <ickle...@googlemail.com 
> <mailto:ickle...@googlemail.com>> wrote:
> Hi Till,
> 
> maybe it is doing so because I rewrite the ds in the next step again and then 
> the working steps get mixed?
> I am reading the data from a local .csv file with readMatrix(env, ā€˛filename")
> 
> See code below.
> 
> Best regards,
> Lydia
> 
> //read input file
> DataSet<Tuple3<Integer, Integer, Double>> ds = readMatrix(env, input);
> 
> /****************
>  POWER ITERATION
>  *****************/
> 
> //get initial vector - which equals matrixA * [1, ... , 1]
> DataSet<Tuple3<Integer, Integer, Double>> initial = 
> ds(0).aggregate(Aggregations.SUM,2);
> 
> //normalize by maximum value
> initial = initial.cross(initial.aggregate(Aggregations.MAX, 2)).map(new 
> normalizeByMax());
> public static DataSource<Tuple3<Integer, Integer, Double>> 
> readMatrix(ExecutionEnvironment env,
>                                                                       String 
> filePath) {
>     CsvReader csvReader = env.readCsvFile(filePath);
>     csvReader.fieldDelimiter(",");
>     csvReader.includeFields("ttt");
>     return csvReader.types(Integer.class, Integer.class, Double.class);
> }
> 
>> Am 22.03.2016 um 14:47 schrieb Till Rohrmann <trohrm...@apache.org 
>> <mailto:trohrm...@apache.org>>:
>> 
>> Hi Lydia,
>> 
>> I tried to reproduce your problem but I couldn't. Can it be that you have 
>> somewhere a non deterministic operation in your program or do you read the 
>> data from a source with varying data? Maybe you could send us a compilable 
>> and complete program which reproduces your problem.
>> 
>> Cheers,
>> Till
>> 
>> On Tue, Mar 22, 2016 at 2:21 PM, Lydia Ickler <ickle...@googlemail.com 
>> <mailto:ickle...@googlemail.com>> wrote:
>> Hi all,
>> 
>> I have a question.
>> If I have a DataSet DataSet<Tuple3<Integer, Integer, Double>> ds and I want 
>> to normalize all values (at position 2) in it by the maximum of the DataSet 
>> (ds.aggregate(Aggregations.MAX, 2)). 
>> How do I tackle that?
>> 
>> If I use the cross operator my result changes every time I run the program 
>> (see code below)
>> Any suggestions?
>> 
>> Thanks in advance!
>> Lydia
>> ds.cross(ds.aggregate(Aggregations.MAX, 2)).map(new normalizeByMax());
>> public static final class normalizeByMax implements
>>         MapFunction<Tuple2<Tuple3<Integer, Integer, Double>, Tuple3<Integer, 
>> Integer, Double>>,
>>                 Tuple3<Integer, Integer, Double>> {
>> 
>>     public Tuple3<Integer, Integer, Double> map(
>>             Tuple2<Tuple3<Integer, Integer, Double>, Tuple3<Integer, 
>> Integer, Double>> value)
>>             throws Exception {
>>         return new Tuple3<Integer, Integer, 
>> Double>(value.f0.f0,value.f0.f1,value.f0.f2/value.f1.f2);
>>     }
>> }
>> 
>> 
>> 
> 
> 

Reply via email to