Thanks for your answer. I guess i'm a bit infected by writing to much
Crunch code and I also suspected that getDataSet() was the wrong thing to
do :-)

However I was expecting DataSet.sortPartition to do the sorting, but this
method is missing in 0.8.1?

Do you have a minimal example? I was looking through the tests but most of
them use sortPartition.

Cheers,
-Kristoffer



On Sun, Mar 15, 2015 at 4:22 PM, Stephan Ewen <se...@apache.org> wrote:

> Hi Kristoffer!
>
> There are a few issues with that code:
>
> 1) Grouping and then calling "sort group" sorts within the group. In your
> case, you group after the entire element and each group has on value - the
> element. Sorting inside the group does not make any difference. There is no
> order across groups.
>
> 2) This code never groups and sorts. The calls to "groupBy(0).sortGroup(0,
> Order.DESCENDING)." do not group and sort already, they set up a grouping
> to be used with a reduce or aggregate function. The "getDataSet()" call
> gets you the original data set, which is the original input.
>
> To see an illustration of this, get the program plan
> (env.getExecutionPlan()). You can render it using the html file
> "tools/planVisualizer.html".
>
> Greetings,
> Stephan
>
>
> On Sun, Mar 15, 2015 at 3:29 PM, Kristoffer Sjögren <sto...@gmail.com>
> wrote:
>
>> Hi
>>
>> This is silly but I can't understand why the following code doesn't sort
>> the collection of integers. It seems to be reasonable thing to do from an
>> API perspective?
>>
>> Cheers,
>> -Kristoffer
>>
>> final ExecutionEnvironment env =
>> ExecutionEnvironment.getExecutionEnvironment();
>>     env.fromCollection(Lists.newArrayList(2,1,5,3,4,5)).map(new
>> MapFunction<Integer, Tuple1<Integer>>() {
>>       @Override
>>       public Tuple1<Integer> map(Integer value) throws Exception {
>>         return new Tuple1(value);
>>       }
>>     }).groupBy(0).sortGroup(0, Order.DESCENDING).getDataSet().print();
>>     env.execute();
>>
>>
>>
>

Reply via email to