[ 
http://issues.apache.org/jira/browse/HADOOP-686?page=comments#action_12447725 ] 
            
Runping Qi commented on HADOOP-686:
-----------------------------------

HADOOP-485  allows you to introduce a secondary key for sorting the map 
outputs, while use the primary key only to group the values passed to reduce.

In the above example, the second elements in the keys of the map outputs are 
the secondary keys.
They are used for sorting. The sorted data look like:

(K1,3), V3 
(K1,4), V4 
(K1,5), V5 
(K2,2), V2 
(K2,3), V3 

However, only the first elements in the keys are used for grouping. Thus, the 
following data will be passed to reduces:

(K1), {V3, V4, V5} 
(K2), {V2, V3} 

In general, the user can specify a function f on the values of map outputs,such 
that, for each key/value pair
k,v in the map output, we will actually emit
(k,f(v)), v

where (k,f(v)) will be used for sorting while k will be used for grouping.
The order defined on f(v) should be the desired order on the v.
A trivial example is that f is an identity function. The problem with that is 
that the values are duplicated in the map output, and the sorting on (k, v) may 
be too expensive. In general, we hope that the value of f(v) be simple values 
such as numbers or strings such that their sizes are much smaller than v, and 
sorting on them can be done efficiently.

  




> job.setOutputValueComparatorClass(theClass) should be supported
> ---------------------------------------------------------------
>
>                 Key: HADOOP-686
>                 URL: http://issues.apache.org/jira/browse/HADOOP-686
>             Project: Hadoop
>          Issue Type: New Feature
>          Components: mapred
>         Environment: all environment
>            Reporter: Feng Jiang
>
> if the input of Reduce phase is :
> K2, V3
> K2, V2
> K1, V5
> K1, V3
> K1, V4
> in the current hadoop, the reduce output could be:
> K1, (V5, V3, V4)
> K2, (V3, V2)
> But I hope hadoop supports job.setOutputValueComparatorClass(theClass), so 
> that i can make values are in order, and the output could be:
> K1, (V3, V4, V5) 
> K2, (V2, V3)
> This feature is very important, I think. Without it, we have to take the 
> sorting by ourselves, and have to worry about the possibility that the values 
> are too large to fit into memory. Then the codes becomes too hard to read. 
> That is the reason why i think this feature is so important, and should be 
> done in the hadoop framework.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to