001/*
002 * Copyright (c) 2010-2013 The Regents of the University of California.
003 * All rights reserved.
004 *
005 * Permission is hereby granted, without written agreement and without
006 * license or royalty fees, to use, copy, modify, and distribute this
007 * software and its documentation for any purpose, provided that the above
008 * copyright notice and the following two paragraphs appear in all copies
009 * of this software.
010 *
011 * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
012 * FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
013 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
014 * THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
015 * SUCH DAMAGE.
016 *
017 * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
018 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
019 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
020 * PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
021 * CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
022 * ENHANCEMENTS, OR MODIFICATIONS.
023 *
024 */
025package org.kepler.hadoop.io.input;
026
027import org.apache.hadoop.io.Text;
028import org.apache.hadoop.mapreduce.InputSplit;
029import org.apache.hadoop.mapreduce.RecordReader;
030import org.apache.hadoop.mapreduce.TaskAttemptContext;
031import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
032
033
034//////////////////////////////////////////////////////////////////////////
035////MultiLineInputFormat
036
037/**
038 * This class extend FileInputFormat class to read multiple lines in each map function. The line number for each reader is configurable 
039 * through 'org.kepler.hadoop.lineread.number' item at mapred-site.xml.
040 * 
041 * @author Jianwu Wang (jianwu@sdsc.edu)
042 * @version $Id: MultiLineInputFormat.java 33070 2014-11-12 23:21:09Z crawl $
043*/
044
045public class MultiLineInputFormat extends FileInputFormat<Text, Text> {
046
047  @Override
048  public RecordReader<Text, Text> 
049    createRecordReader(InputSplit split,
050                       TaskAttemptContext context) {
051    return new MultiLineRecordReader();
052  }
053
054}
055