Description
We often use a pattern of nested DoFns-- DoFns that are composed of operations on other DoFns. There is currently an ambiguity around the right way to initialize those DoFns, since it can be done either via overriding the initialize() or the setContext() methods in DoFn. We should separate the calls to setContext and initialize to remove the ambiguity and fix the instances in Crunch core where we override setContext() instead of initialize().