Class FlatMapElements.FlatMapWithFailures<InputT,OutputT,FailureT>
- All Implemented Interfaces:
Serializable
,HasDisplayData
- Enclosing class:
FlatMapElements<InputT,
OutputT>
PTransform
that adds exception handling to FlatMapElements
.- See Also:
-
Field Summary
Fields inherited from class org.apache.beam.sdk.transforms.PTransform
annotations, displayData, name, resourceHints
-
Method Summary
Modifier and TypeMethodDescriptionexceptionsVia
(ProcessFunction<WithFailures.ExceptionElement<InputT>, FailureT> exceptionHandler) Returns a newFlatMapElements.FlatMapWithFailures
transform that catches exceptions raised while mapping elements, passing the raised exception instance and the input element being processed through the givenexceptionHandler
and emitting the result to a failure collection.expand
(PCollection<InputT> input) Override this method to specify how thisPTransform
should be expanded on the givenInputT
.void
populateDisplayData
(DisplayData.Builder builder) Register display data for the given transform or component.Methods inherited from class org.apache.beam.sdk.transforms.PTransform
addAnnotation, compose, compose, getAdditionalInputs, getAnnotations, getDefaultOutputCoder, getDefaultOutputCoder, getDefaultOutputCoder, getKindString, getName, getResourceHints, setDisplayData, setResourceHints, toString, validate, validate
-
Method Details
-
exceptionsVia
public FlatMapElements.FlatMapWithFailures<InputT,OutputT, exceptionsViaFailureT> (ProcessFunction<WithFailures.ExceptionElement<InputT>, FailureT> exceptionHandler) Returns a newFlatMapElements.FlatMapWithFailures
transform that catches exceptions raised while mapping elements, passing the raised exception instance and the input element being processed through the givenexceptionHandler
and emitting the result to a failure collection.Example usage:
Result<PCollection<String>, String>> result = words.apply( FlatMapElements .into(TypeDescriptors.strings()) // Could throw ArrayIndexOutOfBoundsException .via((String line) -> Arrays.asList(Arrays.copyOfRange(line.split(" "), 1, 5))) .exceptionsInto(TypeDescriptors.strings()) .exceptionsVia((ExceptionElement<String> ee) -> ee.exception().getMessage())); PCollection<String> output = result.output(); PCollection<String> failures = result.failures();
-
expand
Description copied from class:PTransform
Override this method to specify how thisPTransform
should be expanded on the givenInputT
.NOTE: This method should not be called directly. Instead apply the
PTransform
should be applied to theInputT
using theapply
method.Composite transforms, which are defined in terms of other transforms, should return the output of one of the composed transforms. Non-composite transforms, which do not apply any transforms internally, should return a new unbound output and register evaluators (via backend-specific registration methods).
- Specified by:
expand
in classPTransform<PCollection<InputT>,
WithFailures.Result<PCollection<OutputT>, FailureT>>
-
populateDisplayData
Description copied from class:PTransform
Register display data for the given transform or component.populateDisplayData(DisplayData.Builder)
is invoked by Pipeline runners to collect display data viaDisplayData.from(HasDisplayData)
. Implementations may callsuper.populateDisplayData(builder)
in order to register display data in the current namespace, but should otherwise usesubcomponent.populateDisplayData(builder)
to use the namespace of the subcomponent.By default, does not register any display data. Implementors may override this method to provide their own display data.
- Specified by:
populateDisplayData
in interfaceHasDisplayData
- Overrides:
populateDisplayData
in classPTransform<PCollection<InputT>,
WithFailures.Result<PCollection<OutputT>, FailureT>> - Parameters:
builder
- The builder to populate with display data.- See Also:
-