com.google.cloud.dataflow.sdk.transforms

## Class Keys<K>

- java.lang.Object
- - com.google.cloud.dataflow.sdk.transforms.PTransform<PCollection<? extends KV<K,?>>,PCollection<K>>
  - - com.google.cloud.dataflow.sdk.transforms.Keys<K>

Type Parameters:
  `K` - the type of the keys in the input `PCollection`, and the type of the elements in the output `PCollection`

All Implemented Interfaces:
  HasDisplayData, Serializable

    public class Keys<K>
    extends PTransform<PCollection<? extends KV<K,?>>,PCollection<K>>

`Keys<K>` takes a `PCollection` of `KV<K, V>`s and returns a `PCollection<K>` of the keys.

Example of use:

     PCollection<KV<String, Long>> wordCounts = ...;
     PCollection<String> words = wordCounts.apply(Keys.<String>create());

Each output element has the same timestamp and is in the same windows as its corresponding input element, and the output `PCollection` has the same `WindowFn` associated with it as the input.

See also `Values`.

See Also:
  Serialized Form

### 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<K>` `apply(PCollection<? extends KV<K,?>> in)` Applies this `PTransform` on the given `InputT`, and returns its `Output`.
`static <K> Keys<K>` `create()` Returns a `Keys<K>` `PTransform`.

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

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

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

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

### Method Detail

#### create

    public static <K> Keys<K> create()

Returns a `Keys<K>` `PTransform`.

Type Parameters:
  `K` - the type of the keys in the input `PCollection`, and the type of the elements in the output `PCollection`

#### apply

    public PCollection<K> apply(PCollection<? extends KV<K,?>> in)

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<? extends KV<K,?>>,PCollection<K>>`