hadoop-common-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tom White (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HADOOP-1231) Add generics to Mapper and Reducer interfaces
Date Tue, 03 Jul 2007 20:47:04 GMT

     [ 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.


Mime
View raw message