@InterfaceAudience.Public @InterfaceStability.Stable public class DBOutputFormat<K extends DBWritable,V> extends OutputFormat<K,V>
DBOutputFormat
accepts <key,value> pairs, where
key has a type extending DBWritable. Returned RecordWriter
writes only the key to the database with a batch SQL query.
Modifier and Type | Field and Description |
---|---|
String |
dbProductName |
Constructor and Description |
---|
DBOutputFormat() |
Modifier and Type | Method and Description |
---|---|
void |
checkOutputSpecs(JobContext context)
Check for validity of the output-specification for the job.
|
String |
constructQuery(String table,
String[] fieldNames)
Constructs the query used as the prepared statement to insert data.
|
OutputCommitter |
getOutputCommitter(TaskAttemptContext context)
Get the output committer for this output format.
|
RecordWriter<K,V> |
getRecordWriter(TaskAttemptContext context)
Get the
RecordWriter for the given task. |
static void |
setOutput(Job job,
String tableName,
int fieldCount)
Initializes the reduce-part of the job
with the appropriate output settings
|
static void |
setOutput(Job job,
String tableName,
String... fieldNames)
Initializes the reduce-part of the job with
the appropriate output settings
|
public String dbProductName
public void checkOutputSpecs(JobContext context) throws IOException, InterruptedException
OutputFormat
This is to validate the output specification for the job when it is a job is submitted. Typically checks that it does not already exist, throwing an exception when it already exists, so that output is not overwritten.
Implementations which write to filesystems which support delegation tokens usually collect the tokens for the destination path(s) and attach them to the job context's JobConf.checkOutputSpecs
in class OutputFormat<K extends DBWritable,V>
context
- information about the jobIOException
- when output should not be attemptedInterruptedException
public OutputCommitter getOutputCommitter(TaskAttemptContext context) throws IOException, InterruptedException
OutputFormat
getOutputCommitter
in class OutputFormat<K extends DBWritable,V>
context
- the task contextIOException
InterruptedException
public String constructQuery(String table, String[] fieldNames)
table
- the table to insert intofieldNames
- the fields to insert into. If field names are unknown, supply an
array of nulls.public RecordWriter<K,V> getRecordWriter(TaskAttemptContext context) throws IOException
RecordWriter
for the given task.getRecordWriter
in class OutputFormat<K extends DBWritable,V>
context
- the information about the current task.RecordWriter
to write the output for the job.IOException
public static void setOutput(Job job, String tableName, String... fieldNames) throws IOException
job
- The jobtableName
- The table to insert data intofieldNames
- The field names in the table.IOException
public static void setOutput(Job job, String tableName, int fieldCount) throws IOException
job
- The jobtableName
- The table to insert data intofieldCount
- the number of fields in the table.IOException
Copyright © 2023 Apache Software Foundation. All rights reserved.