A Crunch-compatible abstract base class for Spark's FlatMapFunction2. Subclasses
of this class may be used against either Crunch PCollections or Spark RDDs.
Note: Crunch can reuse a single input record object whose content
changes on each DoFn.process(Object, Emitter) method call. This
functionality is imposed by Hadoop's Reducer implementation: The framework will reuse the key and value
objects that are passed into the reduce, therefore the application should
clone the objects they want to keep a copy of.