Esempio n. 1
0
 def deserialize_windowing_strategy(cls, serialized_data):
   # Imported here to avoid circular dependencies.
   # pylint: disable=wrong-import-order, wrong-import-position
   from apache_beam.runners import pipeline_context
   from apache_beam.portability.api import beam_runner_api_pb2
   from apache_beam.transforms.core import Windowing
   proto = beam_runner_api_pb2.MessageWithComponents()
   proto.ParseFromString(cls.json_string_to_byte_array(serialized_data))
   return Windowing.from_runner_api(
       proto.windowing_strategy,
       pipeline_context.PipelineContext(proto.components))
Esempio n. 2
0
 def deserialize_windowing_strategy(cls, serialized_data):
   # Imported here to avoid circular dependencies.
   # pylint: disable=wrong-import-order, wrong-import-position
   from apache_beam.runners import pipeline_context
   from apache_beam.portability.api import beam_runner_api_pb2
   from apache_beam.transforms.core import Windowing
   proto = beam_runner_api_pb2.MessageWithComponents()
   proto.ParseFromString(cls.json_string_to_byte_array(serialized_data))
   return Windowing.from_runner_api(
       proto.windowing_strategy,
       pipeline_context.PipelineContext(proto.components))
Esempio n. 3
0
 def test_windowing_encoding(self):
   for windowing in (
       Windowing(GlobalWindows()),
       Windowing(FixedWindows(1, 3), AfterCount(6),
                 accumulation_mode=AccumulationMode.ACCUMULATING),
       Windowing(SlidingWindows(10, 15, 21), AfterCount(28),
                 timestamp_combiner=TimestampCombiner.OUTPUT_AT_LATEST,
                 accumulation_mode=AccumulationMode.DISCARDING)):
     context = pipeline_context.PipelineContext()
     self.assertEqual(
         windowing,
         Windowing.from_runner_api(windowing.to_runner_api(context), context))
Esempio n. 4
0
 def test_windowing_encoding(self):
   for windowing in (
       Windowing(GlobalWindows()),
       Windowing(FixedWindows(1, 3), AfterCount(6),
                 accumulation_mode=AccumulationMode.ACCUMULATING),
       Windowing(SlidingWindows(10, 15, 21), AfterCount(28),
                 timestamp_combiner=TimestampCombiner.OUTPUT_AT_LATEST,
                 accumulation_mode=AccumulationMode.DISCARDING)):
     context = pipeline_context.PipelineContext()
     self.assertEqual(
         windowing,
         Windowing.from_runner_api(windowing.to_runner_api(context), context))
Esempio n. 5
0
def create(factory, transform_id, transform_proto, parameter, consumers):
  class WindowIntoDoFn(beam.DoFn):
    def __init__(self, windowing):
      self.windowing = windowing

    def process(self, element, timestamp=beam.DoFn.TimestampParam):
      new_windows = self.windowing.windowfn.assign(
          WindowFn.AssignContext(timestamp, element=element))
      yield WindowedValue(element, timestamp, new_windows)
  from apache_beam.transforms.core import Windowing
  from apache_beam.transforms.window import WindowFn, WindowedValue
  windowing = Windowing.from_runner_api(parameter, factory.context)
  return _create_simple_pardo_operation(
      factory, transform_id, transform_proto, consumers,
      WindowIntoDoFn(windowing))