apache_beam.transforms.userstate module

User-facing interfaces for the Beam State and Timer APIs.

Experimental; no backwards-compatibility guarantees.

class apache_beam.transforms.userstate.StateSpec[source]

Bases: future.types.newobject.newobject

Specification for a user DoFn state cell.

to_runner_api(context)[source]
class apache_beam.transforms.userstate.BagStateSpec(name, coder)[source]

Bases: apache_beam.transforms.userstate.StateSpec

Specification for a user DoFn bag state cell.

to_runner_api(context)[source]
class apache_beam.transforms.userstate.CombiningValueStateSpec(name, coder=None, combine_fn=None)[source]

Bases: apache_beam.transforms.userstate.StateSpec

Specification for a user DoFn combining value state cell.

Initialize the specification for CombiningValue state.

CombiningValueStateSpec(name, combine_fn) -> Coder-inferred combining value
state spec.
CombiningValueStateSpec(name, coder, combine_fn) -> Combining value state
spec with coder and combine_fn specified.
Parameters:
  • name (str) – The name by which the state is identified.
  • coder (Coder) – Coder specifying how to encode the values to be combined. May be inferred.
  • combine_fn (CombineFn or callable) – Function specifying how to combine the values passed to state.
to_runner_api(context)[source]
class apache_beam.transforms.userstate.TimerSpec(name, time_domain)[source]

Bases: future.types.newobject.newobject

Specification for a user stateful DoFn timer.

to_runner_api(context)[source]
apache_beam.transforms.userstate.on_timer(timer_spec)[source]

Decorator for timer firing DoFn method.

This decorator allows a user to specify an on_timer processing method in a stateful DoFn. Sample usage:

class MyDoFn(DoFn):
  TIMER_SPEC = TimerSpec('timer', TimeDomain.WATERMARK)

  @on_timer(TIMER_SPEC)
  def my_timer_expiry_callback(self):
    logging.info('Timer expired!')
apache_beam.transforms.userstate.get_dofn_specs(dofn)[source]

Gets the state and timer specs for a DoFn, if any.

Parameters:dofn (apache_beam.transforms.core.DoFn) – The DoFn instance to introspect for timer and state specs.
apache_beam.transforms.userstate.is_stateful_dofn(dofn)[source]

Determines whether a given DoFn is a stateful DoFn.

apache_beam.transforms.userstate.validate_stateful_dofn(dofn)[source]

Validates the proper specification of a stateful DoFn.

class apache_beam.transforms.userstate.RuntimeTimer(timer_spec)[source]

Bases: future.types.newobject.newobject

Timer interface object passed to user code.

clear()[source]
set(timestamp)[source]
class apache_beam.transforms.userstate.RuntimeState(state_spec, state_tag, current_value_accessor)[source]

Bases: future.types.newobject.newobject

State interface object passed to user code.

static for_spec(state_spec, state_tag, current_value_accessor)[source]
prefetch()[source]
class apache_beam.transforms.userstate.BagRuntimeState(state_spec, state_tag, current_value_accessor)[source]

Bases: apache_beam.transforms.userstate.RuntimeState

Bag state interface object passed to user code.

read()[source]
add(value)[source]
clear()[source]
class apache_beam.transforms.userstate.CombiningValueRuntimeState(state_spec, state_tag, current_value_accessor)[source]

Bases: apache_beam.transforms.userstate.RuntimeState

Combining value state interface object passed to user code.

read()[source]
add(value)[source]
clear()[source]
class apache_beam.transforms.userstate.UserStateContext[source]

Bases: future.types.newobject.newobject

Wrapper allowing user state and timers to be accessed by a DoFnInvoker.

get_timer(timer_spec, key, window)[source]
get_state(state_spec, key, window)[source]
commit()[source]