com.google.cloud.dataflow.sdk.transforms

## Class MapElements<InputT,OutputT>

- java.lang.Object
- - com.google.cloud.dataflow.sdk.transforms.PTransform<PCollection<InputT>,PCollection<OutputT>>
  - - com.google.cloud.dataflow.sdk.transforms.MapElements<InputT,OutputT>

All Implemented Interfaces:
  HasDisplayData, Serializable

    public class MapElements<InputT,OutputT>
    extends PTransform<PCollection<InputT>,PCollection<OutputT>>

`PTransform`s for mapping a simple function over the elements of a `PCollection`.

See Also:
  Serialized Form

### Nested Class Summary

Nested Classes
`static class` `MapElements.MissingOutputTypeDescriptor<InputT,OutputT>` An intermediate builder for a `MapElements` transform.

### Field Summary

### Fields inherited from class com.google.cloud.dataflow.sdk.transforms.PTransform

`name`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`PCollection<OutputT>` `apply(PCollection<InputT> input)` Applies this `PTransform` on the given `InputT`, and returns its `Output`.
`void` `populateDisplayData(DisplayData.Builder builder)` Register display data for the given transform or component.
`static <InputT,OutputT> MapElements.MissingOutputTypeDescriptor<InputT,OutputT>` `via(SerializableFunction<InputT,OutputT> fn)` For a `SerializableFunction<InputT, OutputT>` `fn` and output type descriptor, returns a `PTransform` that takes an input `PCollection<InputT>` and returns a `PCollection<OutputT>` containing `fn.apply(v)` for every element `v` in the input.
`static <InputT,OutputT> MapElements<InputT,OutputT>` `via(SimpleFunction<InputT,OutputT> fn)` For a `SimpleFunction<InputT, OutputT>` `fn`, returns a `PTransform` that takes an input `PCollection<InputT>` and returns a `PCollection<OutputT>` containing `fn.apply(v)` for every element `v` in the input.

### Methods inherited from class com.google.cloud.dataflow.sdk.transforms.PTransform

`getDefaultOutputCoder, getDefaultOutputCoder, getDefaultOutputCoder, getKindString, getName, toString, validate`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Method Detail

#### via

    public static <InputT,OutputT> MapElements.MissingOutputTypeDescriptor<InputT,OutputT> via(SerializableFunction<InputT,OutputT> fn)

For a `SerializableFunction<InputT, OutputT>` `fn` and output type descriptor, returns a `PTransform` that takes an input `PCollection<InputT>` and returns a `PCollection<OutputT>` containing `fn.apply(v)` for every element `v` in the input.

Example of use in Java 8:

     PCollection<Integer> wordLengths = words.apply(
         MapElements.via((String word) -> word.length())
             .withOutputType(new TypeDescriptor<Integer>() {});

In Java 7, the overload `via(SimpleFunction)` is more concise as the output type descriptor need not be provided.

#### via

    public static <InputT,OutputT> MapElements<InputT,OutputT> via(SimpleFunction<InputT,OutputT> fn)

For a `SimpleFunction<InputT, OutputT>` `fn`, returns a `PTransform` that takes an input `PCollection<InputT>` and returns a `PCollection<OutputT>` containing `fn.apply(v)` for every element `v` in the input.

This overload is intended primarily for use in Java 7. In Java 8, the overload `via(SerializableFunction)` supports use of lambda for greater concision.

Example of use in Java 7:

     PCollection<String> words = ...;
     PCollection<Integer> wordsPerLine = words.apply(MapElements.via(
         new SimpleFunction<String, Integer>() {
           public Integer apply(String word) {
             return word.length();
           }
         }));

#### apply

    public PCollection<OutputT> apply(PCollection<InputT> input)

Description copied from class: `PTransform`
Applies this `PTransform` on the given `InputT`, and returns its `Output`.

Composite transforms, which are defined in terms of other transforms, should return the output of one of the composed transforms. Non-composite transforms, which do not apply any transforms internally, should return a new unbound output and register evaluators (via backend-specific registration methods).

The default implementation throws an exception. A derived class must either implement apply, or else each runner must supply a custom implementation via `PipelineRunner.apply(com.google.cloud.dataflow.sdk.transforms.PTransform<InputT, OutputT>, InputT)`.

Overrides:
  `apply` in class `PTransform<PCollection<InputT>,PCollection<OutputT>>`

#### populateDisplayData

    public void populateDisplayData(DisplayData.Builder builder)

Description copied from class: `PTransform`
Register display data for the given transform or component.

`populateDisplayData(DisplayData.Builder)` is invoked by Pipeline runners to collect display data via `DisplayData.from(HasDisplayData)`. Implementations may call `super.populateDisplayData(builder)` in order to register display data in the current namespace, but should otherwise use `subcomponent.populateDisplayData(builder)` to use the namespace of the subcomponent.

By default, does not register any display data. Implementors may override this method to provide their own display data.

Specified by:
  `populateDisplayData` in interface `HasDisplayData`
Overrides:
  `populateDisplayData` in class `PTransform<PCollection<InputT>,PCollection<OutputT>>`
Parameters:
  `builder` - The builder to populate with display data.
See Also:
  `HasDisplayData`