示例#1
0
 def delayed_bundle_application(self, op, deferred_remainder):
   # TODO(SDF): For non-root nodes, need main_input_coder + residual_coder.
   ((element_and_restriction, output_watermark),
    deferred_watermark) = deferred_remainder
   if deferred_watermark:
     assert isinstance(deferred_watermark, timestamp.Duration)
     proto_deferred_watermark = duration_pb2.Duration()
     proto_deferred_watermark.FromMicroseconds(deferred_watermark.micros)
   else:
     proto_deferred_watermark = None
   return beam_fn_api_pb2.DelayedBundleApplication(
       requested_time_delay=proto_deferred_watermark,
       application=self.construct_bundle_application(
           op, output_watermark, element_and_restriction))
示例#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)))