def _run_combine_transform(self, transform_node, phase): transform = transform_node.transform element_coder = self._get_coder(transform_node.outputs[None]) _, producer_index, output_index = self.outputs[ transform_node.inputs[0]] combine_op = operation_specs.WorkerCombineFn( serialized_fn=pickler.dumps((transform.combine_fn, (), {}, ())), phase=phase, output_coders=[element_coder], input=(producer_index, output_index)) self._run_as_op(transform_node, combine_op)
def _create_combine_phase_operation(factory, transform_proto, payload, consumers, phase): serialized_combine_fn = pickler.dumps( (beam.CombineFn.from_runner_api(payload.combine_fn, factory.context), [], {})) return factory.augment_oldstyle_op( operations.CombineOperation( transform_proto.unique_name, operation_specs.WorkerCombineFn( serialized_combine_fn, phase, None, [factory.get_only_output_coder(transform_proto)]), factory.counter_factory, factory.state_sampler), transform_proto.unique_name, consumers)