[ 
https://issues.apache.org/jira/browse/HADOOP-1231?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tom White updated HADOOP-1231:
------------------------------

    Attachment: HADOOP-1231.patch

This patch is work in progress, but shows what I'm trying to achieve. I've 
generified the public MapReduce API, the idea being that user programs can be 
type checked at compile time. See the changes in WordCount for an example of 
this.

However, this approach has run into difficulties. When trying to change the 
Grep example, the line

{{grepJob.setReducerClass(LongSumReducer.class);}}

no longer compiles. This does:

{{grepJob.setReducerClass((new LongSumReducer<Text>() {}).getClass());}}

but it's not very nice. The heart of the problem is that you can't say 
LongSumReducer<Text>.class in Java, due to erasure. It's discussed by Neal 
Gafter: http://gafter.blogspot.com/2006/12/super-type-tokens.html, but his 
solution is still a syntactic mouthful.

Any suggestions would be welcome!

> Add generics to Mapper and Reducer interfaces
> ---------------------------------------------
>
>                 Key: HADOOP-1231
>                 URL: https://issues.apache.org/jira/browse/HADOOP-1231
>             Project: Hadoop
>          Issue Type: Improvement
>          Components: mapred
>            Reporter: Owen O'Malley
>            Assignee: Tom White
>         Attachments: HADOOP-1231.patch
>
>
> By making the input and output types of the Mapper and Reducers generic, we 
> can get the information from the classes and not require the user to set them 
> in the configuration.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to