public abstract class DoFnWithContext.Context extends Object
DoFnWithContext.| Constructor and Description |
|---|
Context() |
| Modifier and Type | Method and Description |
|---|---|
abstract PipelineOptions |
getPipelineOptions()
|
abstract void |
output(OutputT output)
Adds the given element to the main output
PCollection. |
abstract void |
outputWithTimestamp(OutputT output,
Instant timestamp)
Adds the given element to the main output
PCollection,
with the given timestamp. |
abstract <T> void |
sideOutput(TupleTag<T> tag,
T output)
Adds the given element to the side output
PCollection with the
given tag. |
abstract <T> void |
sideOutputWithTimestamp(TupleTag<T> tag,
T output,
Instant timestamp)
Adds the given element to the specified side output
PCollection,
with the given timestamp. |
public abstract PipelineOptions getPipelineOptions()
PipelineOptions specified with the
PipelineRunner
invoking this DoFnWithContext. The PipelineOptions will
be the default running via DoFnTester.public abstract void output(OutputT output)
PCollection.
Once passed to output the element should not be modified in
any way.
If invoked from DoFnWithContext.ProcessElement, the output
element will have the same timestamp and be in the same windows
as the input element passed to the method annotated with
@ProcessElement.
If invoked from DoFnWithContext.StartBundle or DoFnWithContext.FinishBundle,
this will attempt to use the
WindowFn
of the input PCollection to determine what windows the element
should be in, throwing an exception if the WindowFn attempts
to access any information about the input element. The output element
will have a timestamp of negative infinity.
public abstract void outputWithTimestamp(OutputT output, Instant timestamp)
PCollection,
with the given timestamp.
Once passed to outputWithTimestamp the element should not be
modified in any way.
If invoked from DoFnWithContext.ProcessElement), the timestamp
must not be older than the input element's timestamp minus
DoFn.getAllowedTimestampSkew(). The output element will
be in the same windows as the input element.
If invoked from DoFnWithContext.StartBundle or DoFnWithContext.FinishBundle,
this will attempt to use the
WindowFn
of the input PCollection to determine what windows the element
should be in, throwing an exception if the WindowFn attempts
to access any information about the input element except for the
timestamp.
public abstract <T> void sideOutput(TupleTag<T> tag, T output)
PCollection with the
given tag.
Once passed to sideOutput the element should not be modified
in any way.
The caller of ParDo uses ParDo.withOutputTags(org.apache.beam.sdk.values.TupleTag<OutputT>, org.apache.beam.sdk.values.TupleTagList) to
specify the tags of side outputs that it consumes. Non-consumed side
outputs, e.g., outputs for monitoring purposes only, don't necessarily
need to be specified.
The output element will have the same timestamp and be in the same
windows as the input element passed to DoFnWithContext.ProcessElement).
If invoked from DoFnWithContext.StartBundle or DoFnWithContext.FinishBundle,
this will attempt to use the
WindowFn
of the input PCollection to determine what windows the element
should be in, throwing an exception if the WindowFn attempts
to access any information about the input element. The output element
will have a timestamp of negative infinity.
public abstract <T> void sideOutputWithTimestamp(TupleTag<T> tag, T output, Instant timestamp)
PCollection,
with the given timestamp.
Once passed to sideOutputWithTimestamp the element should not be
modified in any way.
If invoked from DoFnWithContext.ProcessElement), the timestamp
must not be older than the input element's timestamp minus
DoFn.getAllowedTimestampSkew(). The output element will
be in the same windows as the input element.
If invoked from DoFnWithContext.StartBundle or DoFnWithContext.FinishBundle,
this will attempt to use the
WindowFn
of the input PCollection to determine what windows the element
should be in, throwing an exception if the WindowFn attempts
to access any information about the input element except for the
timestamp.