@InterfaceAudience.Public @InterfaceStability.Stable public class DBInputFormat<T extends DBWritable> extends InputFormat<LongWritable,T> implements Configurable
DBInputFormat emits LongWritables containing the record number as key and DBWritables as value. The SQL query, and input class can be using one of the two setInput methods.
| 限定符和类型 | 类和说明 |
|---|---|
static class |
DBInputFormat.DBInputSplit
A InputSplit that spans a set of rows
|
static class |
DBInputFormat.NullDBWritable
A Class that does nothing, implementing DBWritable
|
| 构造器和说明 |
|---|
DBInputFormat() |
| 限定符和类型 | 方法和说明 |
|---|---|
protected void |
closeConnection() |
protected RecordReader<LongWritable,T> |
createDBRecordReader(DBInputFormat.DBInputSplit split,
Configuration conf) |
RecordReader<LongWritable,T> |
createRecordReader(InputSplit split,
TaskAttemptContext context)
Create a record reader for a given split.
|
Configuration |
getConf()
Return the configuration used by this object.
|
Connection |
getConnection() |
protected String |
getCountQuery()
Returns the query for getting the total number of rows,
subclasses can override this for custom behaviour.
|
DBConfiguration |
getDBConf() |
String |
getDBProductName() |
List<InputSplit> |
getSplits(JobContext job)
Logically split the set of input files for the job.
|
void |
setConf(Configuration conf)
Set the configuration to be used by this object.
|
static void |
setInput(Job job,
Class<? extends DBWritable> inputClass,
String inputQuery,
String inputCountQuery)
Initializes the map-part of the job with the appropriate input settings.
|
static void |
setInput(Job job,
Class<? extends DBWritable> inputClass,
String tableName,
String conditions,
String orderBy,
String... fieldNames)
Initializes the map-part of the job with the appropriate input settings.
|
public void setConf(Configuration conf)
setConf 在接口中 Configurablepublic Configuration getConf()
ConfigurablegetConf 在接口中 Configurablepublic DBConfiguration getDBConf()
public Connection getConnection()
public String getDBProductName()
protected RecordReader<LongWritable,T> createDBRecordReader(DBInputFormat.DBInputSplit split, Configuration conf) throws IOException
IOExceptionpublic RecordReader<LongWritable,T> createRecordReader(InputSplit split, TaskAttemptContext context) throws IOException, InterruptedException
RecordReader.initialize(InputSplit, TaskAttemptContext) before
the split is used.createRecordReader 在类中 InputFormat<LongWritable,T extends DBWritable>split - the split to be readcontext - the information about the taskIOExceptionInterruptedExceptionpublic List<InputSplit> getSplits(JobContext job) throws IOException
Each InputSplit is then assigned to an individual Mapper
for processing.
Note: The split is a logical split of the inputs and the
input files are not physically split into chunks. For e.g. a split could
be <input-file-path, start, offset> tuple. The InputFormat
also creates the RecordReader to read the InputSplit.
getSplits 在类中 InputFormat<LongWritable,T extends DBWritable>job - job configuration.InputSplits for the job.IOExceptionprotected String getCountQuery()
public static void setInput(Job job, Class<? extends DBWritable> inputClass, String tableName, String conditions, String orderBy, String... fieldNames)
job - The map-reduce jobinputClass - the class object implementing DBWritable, which is the
Java object holding tuple fields.tableName - The table to read data fromconditions - The condition which to select data with,
eg. '(updated > 20070101 AND length > 0)'orderBy - the fieldNames in the orderBy clause.fieldNames - The field names in the tablesetInput(Job, Class, String, String)public static void setInput(Job job, Class<? extends DBWritable> inputClass, String inputQuery, String inputCountQuery)
job - The map-reduce jobinputClass - the class object implementing DBWritable, which is the
Java object holding tuple fields.inputQuery - the input query to select fields. Example :
"SELECT f1, f2, f3 FROM Mytable ORDER BY f1"inputCountQuery - the input query that returns
the number of records in the table.
Example : "SELECT COUNT(f1) FROM Mytable"setInput(Job, Class, String, String, String, String...)protected void closeConnection()
Copyright © 2009 The Apache Software Foundation