apache_beam.transforms.userstate module

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

class apache_beam.transforms.userstate.StateSpec(name: str, coder: Coder)[source]

Bases: object

Specification for a user DoFn state cell.

to_runner_api(context: PipelineContext) StateSpec[source]
class apache_beam.transforms.userstate.ReadModifyWriteStateSpec(name: str, coder: Coder)[source]

Bases: StateSpec

Specification for a user DoFn value state cell.

to_runner_api(context: PipelineContext) StateSpec[source]
class apache_beam.transforms.userstate.BagStateSpec(name: str, coder: Coder)[source]

Bases: StateSpec

Specification for a user DoFn bag state cell.

to_runner_api(context: PipelineContext) StateSpec[source]
class apache_beam.transforms.userstate.SetStateSpec(name: str, coder: Coder)[source]

Bases: StateSpec

Specification for a user DoFn Set State cell

to_runner_api(context: PipelineContext) StateSpec[source]
class apache_beam.transforms.userstate.CombiningValueStateSpec(name: str, coder: Coder | None = None, combine_fn: Any | None = None)[source]

Bases: 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: PipelineContext) StateSpec[source]
class apache_beam.transforms.userstate.Timer(user_key, dynamic_timer_tag, windows, clear_bit, fire_timestamp, hold_timestamp, paneinfo)

Bases: tuple

Create new instance of Timer(user_key, dynamic_timer_tag, windows, clear_bit, fire_timestamp, hold_timestamp, paneinfo)

clear_bit: bool

Alias for field number 3

dynamic_timer_tag: str

Alias for field number 1

fire_timestamp: Timestamp | None

Alias for field number 4

hold_timestamp: Timestamp | None

Alias for field number 5

paneinfo: windowed_value.PaneInfo | None

Alias for field number 6

user_key: Any

Alias for field number 0

windows: Tuple[windowed_value.BoundedWindow, ...]

Alias for field number 2

class apache_beam.transforms.userstate.TimerSpec(name: str, time_domain: str)[source]

Bases: object

Specification for a user stateful DoFn timer.

prefix = 'ts-'
to_runner_api(context: PipelineContext, key_coder: Coder, window_coder: Coder) TimerFamilySpec[source]
apache_beam.transforms.userstate.on_timer(timer_spec: TimerSpec) Callable[[CallableT], CallableT][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: DoFn) Tuple[Set[StateSpec], Set[TimerSpec]][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: DoFn) bool[source]

Determines whether a given DoFn is a stateful DoFn.

apache_beam.transforms.userstate.validate_stateful_dofn(dofn: DoFn) None[source]

Validates the proper specification of a stateful DoFn.

class apache_beam.transforms.userstate.BaseTimer[source]

Bases: object

clear(dynamic_timer_tag: str = '') None[source]
set(timestamp: Timestamp, dynamic_timer_tag: str = '') None[source]
class apache_beam.transforms.userstate.RuntimeTimer[source]

Bases: BaseTimer

Timer interface object passed to user code.

clear(dynamic_timer_tag: str = '') None[source]
set(timestamp: Timestamp, dynamic_timer_tag: str = '') None[source]
class apache_beam.transforms.userstate.RuntimeState[source]

Bases: object

State interface object passed to user code.

prefetch() None[source]
finalize() None[source]
class apache_beam.transforms.userstate.ReadModifyWriteRuntimeState[source]

Bases: RuntimeState

read() Any[source]
write(value: Any) None[source]
clear() None[source]
commit() None[source]
class apache_beam.transforms.userstate.AccumulatingRuntimeState[source]

Bases: RuntimeState

read() Iterable[Any][source]
add(value: Any) None[source]
clear() None[source]
commit() None[source]
class apache_beam.transforms.userstate.BagRuntimeState[source]

Bases: AccumulatingRuntimeState

Bag state interface object passed to user code.

class apache_beam.transforms.userstate.SetRuntimeState[source]

Bases: AccumulatingRuntimeState

Set state interface object passed to user code.

class apache_beam.transforms.userstate.CombiningValueRuntimeState[source]

Bases: AccumulatingRuntimeState

Combining value state interface object passed to user code.

class apache_beam.transforms.userstate.UserStateContext[source]

Bases: object

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

get_timer(timer_spec: TimerSpec, key: Any, window: windowed_value.BoundedWindow, timestamp: Timestamp, pane: PaneInfo) BaseTimer[source]
get_state(state_spec: StateSpec, key: Any, window: windowed_value.BoundedWindow) RuntimeState[source]
commit() None[source]