TupleTag (Google Cloud Dataflow SDK 1.9.1 API)

Google Cloud Dataflow SDK for Java, version 1.9.1


Class TupleTag<V>

  • Type Parameters:
    V - the type of the elements or values of the tagged thing, e.g., a PCollection<V>.
    All Implemented Interfaces:

    public class TupleTag<V>
    extends Object
    implements Serializable
    A TupleTag is a typed tag to use as the key of a heterogeneously typed tuple, like PCollectionTuple. Its generic type parameter allows tracking the static type of things stored in tuples.

    To aid in assigning default Coders for results of side outputs of ParDo, an output TupleTag should be instantiated with an extra {} so it is an instance of an anonymous subclass without generic type parameters. Input TupleTags require no such extra instantiation (although it doesn't hurt). For example:

     TupleTag<SomeType> inputTag = new TupleTag<>();
     TupleTag<SomeOtherType> outputTag = new TupleTag<SomeOtherType>(){};

    See Also:
    Serialized Form
    • Constructor Detail

      • TupleTag

        public TupleTag()
        Constructs a new TupleTag, with a fresh unique id.

        This is the normal way TupleTags are constructed.

      • TupleTag

        public TupleTag(String id)
        Constructs a new TupleTag with the given id.

        It is up to the user to ensure that two TupleTags with the same id actually mean the same tag and carry the same generic type parameter. Violating this invariant can lead to hard-to-diagnose runtime type errors. Consequently, this operation should be used very sparingly, such as when the producer and consumer of TupleTags are written in separate modules and can only coordinate via ids rather than shared TupleTag instances. Most of the time, TupleTag() should be preferred.

    • Method Detail

      • getId

        public String getId()
        Returns the id of this TupleTag.

        Two TupleTags with the same id are considered equal.

        TupleTags are not ordered, i.e., the class does not implement Comparable interface. TupleTags implement equals and hashCode, making them suitable for use as keys in HashMap and HashSet.

      • getOutName

        public String getOutName(int outIndex)
        If this TupleTag is tagging output outputIndex of a PTransform, returns the name that should be used by default for the output.
      • getTypeDescriptor

        public TypeDescriptor<V> getTypeDescriptor()
        Returns a TypeDescriptor capturing what is known statically about the type of this TupleTag instance's most-derived class.

        This is useful for a TupleTag constructed as an instance of an anonymous subclass with a trailing {}, e.g., new TupleTag<SomeType>(){}.

      • asCloudObject

        public com.google.cloud.dataflow.sdk.util.CloudObject asCloudObject()
      • hashCode

        public int hashCode()
        hashCode in class Object