OutputFormat (Apache Hadoop Main 3.5.0 API)
Description: declaration: package: org.apache.hadoop.mapreduce, class: OutputFormat

Package org.apache.hadoop.mapreduce

# Class OutputFormat<K,V>

java.lang.Object
org.apache.hadoop.mapreduce.OutputFormat<K,V>

Direct Known Subclasses:
  `DBOutputFormat`, `FileOutputFormat`, `FilterOutputFormat`, `NullOutputFormat`

@Public @Stable public abstract class OutputFormat<K,V> extends Object
`OutputFormat` describes the output-specification for a Map-Reduce job.

The Map-Reduce framework relies on the `OutputFormat` of the job to:

1. Validate the output-specification of the job. For e.g. check that the output directory doesn't already exist.
2. Provide the `RecordWriter` implementation to be used to write out the output files of the job. Output files are stored in a `FileSystem`.

See Also:
  - `RecordWriter`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `OutputFormat()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract void`
  `checkOutputSpecs(JobContext context)`
  Check for validity of the output-specification for the job.
  `abstract OutputCommitter`
  `getOutputCommitter(TaskAttemptContext context)`
  Get the output committer for this output format.
  `abstract RecordWriter<K,V>`
  `getRecordWriter(TaskAttemptContext context)`
  Get the `RecordWriter` for the given task.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### OutputFormat

    public OutputFormat()

- ## Method Details

  - ### getRecordWriter

    public abstract RecordWriter<K,V> getRecordWriter(TaskAttemptContext context) throws IOException, InterruptedException
    Get the `RecordWriter` for the given task.
    Parameters:
      `context` - the information about the current task.
    Returns:
      a `RecordWriter` to write the output for the job.
    Throws:
      `IOException`
      `InterruptedException`

  - ### checkOutputSpecs

    public abstract void checkOutputSpecs(JobContext context) throws IOException, InterruptedException
    Check for validity of the output-specification for the job.

    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.
    Parameters:
      `context` - information about the job
    Throws:
      `IOException` - when output should not be attempted
      `InterruptedException`

  - ### getOutputCommitter

    public abstract OutputCommitter getOutputCommitter(TaskAttemptContext context) throws IOException, InterruptedException
    Get the output committer for this output format. This is responsible for ensuring the output is committed correctly.
    Parameters:
      `context` - the task context
    Returns:
      an output committer
    Throws:
      `IOException`
      `InterruptedException`