I dunno, I just know that when I use a separate comparator for my custom key (does something similar to yours, although 2 or 3 additional secondary fields to group on) it works as it should.
--Aaron ----------------------------------------------------------------------------- From: Trevor Adams [mailto:trevorad...@gmail.com] Sent: Wednesday, June 29, 2011 11:34 AM To: mapreduce-user@hadoop.apache.org Subject: Re: Reduce method called same key twice So, that kind of makes sense but why would it not group the other values then? There are a bunch of the exact same key (only 1 primary record, so only 1 that is different per set) and it is my understanding that they would be grouped together (without the primary key) if I didn't do anything different. -Trevor On Wed, Jun 29, 2011 at 2:07 PM, Aaron Baff <aaron.b...@telescope.tv> wrote: You probably need to implement a custom comparator that you use as the grouping comparator that compares the primary key, and then if they are the same compares the int part of the key. --Aaron ----------------------------------------------------------------------------- From: Trevor Adams [mailto:trevorad...@gmail.com] Sent: Wednesday, June 29, 2011 10:00 AM To: mapreduce-user@hadoop.apache.org Subject: Reduce method called same key twice So I have a custom Key which is used for a join. It contains two fields, a boolean (is primary key) and an int (key). Hashcode only looks at the key field, so that it gets sent to the same reducer. Compare places the pkey at the top of the list (if sorted using compare). This works nicely, except that the reduce method is called with Key: 1 -> a single value, Key: 1 -> another value etc. One for each value, so instead of bucketing the values to a key (and some of the keys are identical, in every way) it sends 1 key and 1 value to the reducer at a time. How do I get it to bucket or why isn't it bucketing? -Trevor