Beispiel #1
0
 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)
Beispiel #2
0
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)