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

Enis Soztutar updated HADOOP-449:
---------------------------------

    Attachment: filterinputformat_v1.patch

Here is the patch to generalize the filtering capability on input records. 

The patch 
- deprecates SequenceFileInputFilter
- introduces o.a.h.io.filter package 
- refactors SequenceFileInputFilter.Filter to  o.a.h.io.filter.WritableFilter,  
SequenceFileInputFilter.RegexFilter to o.a.h.io.filter.RegexFilter, .. 
- Introduces new filters DefaultFilter, ItemFilter, SetFilter, and RangeFilter. 
- Introduces FilterRecordReader which uses the provided filter on the records 
returned by the underlying RecordReader.  
- Introduces FilterInputFormat which is a decorator to add filtering 
capability. It can work with the legacy code with no change. 

> Generalize the SequenceFileInputFilter to apply to any InputFormat
> ------------------------------------------------------------------
>
>                 Key: HADOOP-449
>                 URL: https://issues.apache.org/jira/browse/HADOOP-449
>             Project: Hadoop
>          Issue Type: Improvement
>          Components: mapred
>    Affects Versions: 0.5.0
>            Reporter: Owen O'Malley
>            Assignee: Enis Soztutar
>         Attachments: filterinputformat_v1.patch
>
>
> I'd like to generalize the SequenceFileInputFormat that was introduced in 
> HADOOP-412 so that it can be applied to any InputFormat. To do this, I 
> propose:
> interface WritableFilter {
>    boolean accept(Writable item);
> }
> class FilterInputFormat implements InputFormat {
>   ...
> }
> FilterInputFormat would look in the JobConf for:
>    mapred.input.filter.source = the underlying input format
>    mapred.input.filter.filters = a list of class names that implement 
> WritableFilter
> The FilterInputFormat will work like the current SequenceFilter, but use an 
> internal RecordReader rather than the SequenceFile. This will require adding 
> a next(key) and getCurrentValue(value) to the RecordReader interface, but 
> that will be addressed in a different issue.

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