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.
Returns an estimate of how applying this function to a PCollection
will cause it to change in side. The optimizer uses these estimates to
decide where to break up dependent MR jobs into separate Map and Reduce
phases in order to minimize I/O.
Subclasses of DoFn that will substantially alter the size of the
resulting PCollection should override this method.