Package 

Class FlatMapElementFn

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

    
    public final class FlatMapElementFn<InputT extends Object, OutputT extends Object>
    extends BaseElementFn<InputT, OutputT>
                        

    This class proposes a custom flatMap operation while interacting with org.apache.beam.sdk.transforms.DoFn lifecycle.

    <br></br>

    This class is based on an output type descriptor and take a SerializableFunction to execute the mapping treatment lazily. This output type allows to give type information and handle default coder for output. This function is mandatory and executed in the ProcessElement stage of Beam lifecycle.

    <br></br>

    This class can take actions SerializableAction, used in the DoFn Beam lifecycle.

    • withSetupAction : executed in the setup method

    • withStartBundleAction : executed in the start bundle method

    • withFinishBundleAction : executed in the finish bundle method

    • withTeardownAction : executed in the teardown method

    These functions are not required and if they are given, they are executed lazily in the dedicated method.

    <br></br> <br></br>

    Example usage:

        // With serializable function but without lifecycle actions.
        FlatMapElementFn.into(TypeDescriptor.of(Player.class))
                        .via(team -> team.getPlayers())
    
        // With serializable function and some lifecycle actions.
        FlatMapElementFn.into(TypeDescriptor.of(Player.class))
                        .via(team -> team.getPlayers())
                        .withSetupAction(() -> System.out.println("Starting of mapping...")
                        .withStartBundleAction(() -> System.out.println("Starting bundle of mapping...")
                        .withFinishBundleAction(() -> System.out.println("Ending bundle of mapping...")
                        .withTeardownAction(() -> System.out.println("Ending of mapping...")