示例#1
0
 def construct_bundle_application(self, op, output_watermark, element):
   transform_id, main_input_tag, main_input_coder, outputs = op.input_info
   if output_watermark:
     proto_output_watermark = timestamp_pb2.Timestamp()
     proto_output_watermark.FromMicroseconds(output_watermark.micros)
     output_watermarks = {output: proto_output_watermark for output in outputs}
   else:
     output_watermarks = None
   return beam_fn_api_pb2.BundleApplication(
       transform_id=transform_id,
       input_id=main_input_tag,
       output_watermarks=output_watermarks,
       element=main_input_coder.get_impl().encode_nested(element))
示例#2
0
 def delayed_bundle_application(self, op, deferred_remainder):
   transform_id, main_input_tag, main_input_coder, outputs = op.input_info
   # TODO(SDF): For non-root nodes, need main_input_coder + residual_coder.
   element_and_restriction, watermark = deferred_remainder
   if watermark:
     proto_watermark = timestamp_pb2.Timestamp()
     proto_watermark.FromMicroseconds(watermark.micros)
     output_watermarks = {output: proto_watermark for output in outputs}
   else:
     output_watermarks = None
   return beam_fn_api_pb2.DelayedBundleApplication(
       application=beam_fn_api_pb2.BundleApplication(
           transform_id=transform_id,
           input_id=main_input_tag,
           output_watermarks=output_watermarks,
           element=main_input_coder.get_impl().encode_nested(
               element_and_restriction)))