/**
* (c) Copyright 2013 WibiData, Inc.
*
* See the NOTICE file distributed with this work for additional
* information regarding copyright ownership.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Pivot classes for KijiMR clients.
*
* <p>
* A {@link org.kiji.mapreduce.pivot.KijiPivoter} scans over the rows of an input Kiji table and
* writes cells into an output Kiji table which may or may not be the same table. The
* {@link org.kiji.mapreduce.pivot.KijiPivoter} class is the base class for all pivoter job.
* Conceptually, a {@link org.kiji.mapreduce.pivot.KijiPivoter} is a map-only job that reads from
* a Kiji table and writes to a Kiji table.
* </p>
*
* <h2>Constructing a pivot job:</h2>
* <p> A pivot job that writes HFiles can be created as follows: </p>
* <pre><blockquote>
* final Configuration conf = ...;
* final KijiURI inputTableURI = ...;
* final KijiURI outputTableURI = ...;
* final KijiMapReduceJob job = KijiPivotJobBuilder.create()
* .withConf(conf)
* .withPivoter(SomePivoter.class)
* .withInputTable(inputTableURI)
* .withOutput(MapReduceJobOutputs
* .newHFileMapReduceJobOutput(outputTableURI, hfilePath))
* .build();
* job.run();
* </blockquote></pre>
* <p>
* The {@code kiji pivot} command line tool wraps this functionality and can be used
* to launch pivot jobs.
* </p>
*/
package org.kiji.mapreduce.pivot;