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