public class ParseJsons.ParseJsonsWithFailures<FailureT>
extends org.apache.beam.sdk.transforms.PTransform<org.apache.beam.sdk.values.PCollection<java.lang.String>,org.apache.beam.sdk.transforms.WithFailures.Result<org.apache.beam.sdk.values.PCollection<OutputT>,FailureT>>
PTransform that adds exception handling to ParseJsons.| Modifier and Type | Method and Description |
|---|---|
ParseJsons.ParseJsonsWithFailures<FailureT> |
exceptionsVia(org.apache.beam.sdk.transforms.ProcessFunction<org.apache.beam.sdk.transforms.WithFailures.ExceptionElement<java.lang.String>,FailureT> exceptionHandler)
Returns a new
ParseJsons.ParseJsonsWithFailures transform that catches exceptions raised while
parsing 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<OutputT>,FailureT> |
expand(org.apache.beam.sdk.values.PCollection<java.lang.String> input) |
addAnnotation, compose, compose, getAdditionalInputs, getAnnotations, getDefaultOutputCoder, getDefaultOutputCoder, getDefaultOutputCoder, getKindString, getName, getResourceHints, populateDisplayData, setDisplayData, setResourceHints, toString, validate, validatepublic ParseJsons.ParseJsonsWithFailures<FailureT> exceptionsVia(org.apache.beam.sdk.transforms.ProcessFunction<org.apache.beam.sdk.transforms.WithFailures.ExceptionElement<java.lang.String>,FailureT> exceptionHandler)
ParseJsons.ParseJsonsWithFailures transform that catches exceptions raised while
parsing 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 ParseJsons.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<MyPojo>, KV<String, Map<String, String>>> result =
json.apply(
ParseJsons.of(MyPojo.class)
.exceptionsInto(
TypeDescriptors.kvs(TypeDescriptors.strings(), TypeDescriptors.strings()))
.exceptionsVia(
f -> KV.of(f.element(), f.exception().getClass().getCanonicalName())));
PCollection<MyPojo> output = result.output(); // valid POJOs
PCollection<KV<String, Map<String, String>>> failures = result.failures();