Class AsJsons<InputT>

  • All Implemented Interfaces:
    java.io.Serializable, org.apache.beam.sdk.transforms.display.HasDisplayData

    public class AsJsons<InputT>
    extends org.apache.beam.sdk.transforms.PTransform<org.apache.beam.sdk.values.PCollection<InputT>,​org.apache.beam.sdk.values.PCollection<java.lang.String>>
    PTransform for serializing objects to JSON Strings. Transforms a PCollection<InputT> into a PCollection of JSON Strings representing objects in the original PCollection using Jackson.
    See Also:
    Serialized Form
    • Field Summary

      • Fields inherited from class org.apache.beam.sdk.transforms.PTransform

        annotations, displayData, name, resourceHints
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      <NewFailureT>
      AsJsons.AsJsonsWithFailures<NewFailureT>
      exceptionsInto​(org.apache.beam.sdk.values.TypeDescriptor<NewFailureT> failureTypeDescriptor)
      Returns a new AsJsons.AsJsonsWithFailures transform that catches exceptions raised while writing JSON elements, with the given type descriptor used for the failure collection but the exception handler yet to be specified using AsJsons.AsJsonsWithFailures.exceptionsVia(ProcessFunction).
      AsJsons.AsJsonsWithFailures<org.apache.beam.sdk.values.KV<InputT,​java.util.Map<java.lang.String,​java.lang.String>>> exceptionsVia()
      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 default exception handler AsJsons.DefaultExceptionAsMapHandler and emitting the result to a failure collection.
      <FailureT> AsJsons.AsJsonsWithFailures<FailureT> exceptionsVia​(org.apache.beam.sdk.transforms.InferableFunction<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.values.PCollection<java.lang.String> expand​(org.apache.beam.sdk.values.PCollection<InputT> input)  
      static <InputT> AsJsons<InputT> of​(java.lang.Class<? extends InputT> inputClass)
      Creates a AsJsons PTransform that will transform a PCollection<InputT> into a PCollection of JSON Strings representing those objects using a Jackson ObjectMapper.
      AsJsons<InputT> withMapper​(com.fasterxml.jackson.databind.ObjectMapper mapper)
      Use custom Jackson ObjectMapper instead of the default one.
      • Methods inherited from class org.apache.beam.sdk.transforms.PTransform

        addAnnotation, compose, compose, getAdditionalInputs, getAnnotations, getDefaultOutputCoder, getDefaultOutputCoder, getDefaultOutputCoder, getKindString, getName, getResourceHints, populateDisplayData, setDisplayData, setResourceHints, toString, validate, validate
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Method Detail

      • of

        public static <InputT> AsJsons<InputT> of​(java.lang.Class<? extends InputT> inputClass)
        Creates a AsJsons PTransform that will transform a PCollection<InputT> into a PCollection of JSON Strings representing those objects using a Jackson ObjectMapper.
      • withMapper

        public AsJsons<InputT> withMapper​(com.fasterxml.jackson.databind.ObjectMapper mapper)
        Use custom Jackson ObjectMapper instead of the default one.
      • exceptionsVia

        public <FailureT> AsJsons.AsJsonsWithFailures<FailureT> exceptionsVia​(org.apache.beam.sdk.transforms.InferableFunction<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.

        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)
                     .exceptionsVia(new WithFailures.ExceptionAsMapHandler<MyPojo>() {}));
        
         PCollection<String> output = result.output(); // valid json elements
         PCollection<KV<MyPojo, Map<String, String>>> failures = result.failures();
         
      • exceptionsVia

        public AsJsons.AsJsonsWithFailures<org.apache.beam.sdk.values.KV<InputT,​java.util.Map<java.lang.String,​java.lang.String>>> exceptionsVia()
        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 default exception handler AsJsons.DefaultExceptionAsMapHandler and emitting the result to a failure collection.

        See AsJsons.DefaultExceptionAsMapHandler for more details about default handler behavior.

        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)
                     .exceptionsVia());
        
         PCollection<String> output = result.output(); // valid json elements
         PCollection<KV<MyPojo, Map<String, String>>> failures = result.failures();
         
      • expand

        public org.apache.beam.sdk.values.PCollection<java.lang.String> expand​(org.apache.beam.sdk.values.PCollection<InputT> input)
        Specified by:
        expand in class org.apache.beam.sdk.transforms.PTransform<org.apache.beam.sdk.values.PCollection<InputT>,​org.apache.beam.sdk.values.PCollection<java.lang.String>>