public class AsJsons.AsJsonsWithFailures<FailureT>
extends org.apache.beam.sdk.transforms.PTransform<org.apache.beam.sdk.values.PCollection<InputT>,org.apache.beam.sdk.transforms.WithFailures.Result<org.apache.beam.sdk.values.PCollection<java.lang.String>,FailureT>>
PTransform that adds exception handling to AsJsons.| Modifier and Type | Method and Description |
|---|---|
AsJsons.AsJsonsWithFailures<FailureT> |
exceptionsVia(org.apache.beam.sdk.transforms.ProcessFunction<org.apache.beam.sdk.transforms.WithFailures.ExceptionElement<InputT>,FailureT> exceptionHandler)
Returns a new
AsJsons.AsJsonsWithFailures transform that catches exceptions raised while
writing JSON elements, passing the raised exception instance and the input element being
processed through the given exceptionHandler and emitting the result to a failure
collection. |
org.apache.beam.sdk.transforms.WithFailures.Result<org.apache.beam.sdk.values.PCollection<java.lang.String>,FailureT> |
expand(org.apache.beam.sdk.values.PCollection<InputT> input) |
public AsJsons.AsJsonsWithFailures<FailureT> exceptionsVia(org.apache.beam.sdk.transforms.ProcessFunction<org.apache.beam.sdk.transforms.WithFailures.ExceptionElement<InputT>,FailureT> exceptionHandler)
AsJsons.AsJsonsWithFailures transform that catches exceptions raised while
writing JSON elements, passing the raised exception instance and the input element being
processed through the given exceptionHandler and emitting the result to a failure
collection. It is supposed to be used along with AsJsons.exceptionsInto(TypeDescriptor) and get lambda function as exception handler.
See WithFailures documentation for usage patterns of the returned WithFailures.Result.
Example usage:
WithFailures.Result<PCollection<String>, KV<MyPojo, Map<String, String>>> result =
pojos.apply(
AsJsons.of(MyPojo.class)
.exceptionsInto(
TypeDescriptors.kvs(
TypeDescriptor.of(MyPojo.class), TypeDescriptors.strings()))
.exceptionsVia(
f -> KV.of(f.element(), f.exception().getClass().getCanonicalName())));
PCollection<String> output = result.output(); // valid json elements
PCollection<KV<MyPojo, Map<String, String>>> failures = result.failures();