T
- the type of the elements of the resulting PCollection
public class Create<T>
extends java.lang.Object
Create<T>
takes a collection of elements of type T
known when the pipeline is
constructed and returns a PCollection<T>
containing the elements.
Example of use:
Pipeline p = ...;
PCollection<Integer> pc = p.apply(Create.of(3, 4, 5).withCoder(BigEndianIntegerCoder.of()));
Map<String, Integer> map = ...;
PCollection<KV<String, Integer>> pt =
p.apply(Create.of(map)
.withCoder(KvCoder.of(StringUtf8Coder.of(),
BigEndianIntegerCoder.of())));
Create
can automatically determine the Coder
to use if all elements have the
same run-time class, and a default coder is registered for that class. See CoderRegistry
for details on how defaults are determined.
If a coder can not be inferred, Create.Values.withCoder(org.apache.beam.sdk.coders.Coder<T>)
must be called explicitly to
set the encoding of the resulting PCollection
.
A good use for Create
is when a PCollection
needs to be created without
dependencies on files or other external entities. This is especially useful during testing.
Caveat: Create
only supports small in-memory datasets.
Modifier and Type | Class and Description |
---|---|
static class |
Create.OfValueProvider<T>
|
static class |
Create.TimestampedValues<T>
A
PTransform that creates a PCollection whose elements have associated
timestamps. |
static class |
Create.Values<T>
A
PTransform that creates a PCollection from a set of in-memory objects. |
Constructor and Description |
---|
Create() |
Modifier and Type | Method and Description |
---|---|
static <T> Create.Values<T> |
empty(Coder<T> coder)
Returns a new
Create.Values transform that produces an empty PCollection . |
static <T> Create.Values<T> |
empty(TypeDescriptor<T> type)
Returns a new
Create.Values transform that produces an empty PCollection . |
static <T> Create.Values<T> |
of(java.lang.Iterable<T> elems)
Returns a new
Create.Values transform that produces a PCollection containing
elements of the provided Iterable . |
static <K,V> Create.Values<KV<K,V>> |
of(java.util.Map<K,V> elems)
Returns a new
Create.Values transform that produces a PCollection of KV s corresponding to the keys and values of the specified Map . |
static <T> Create.Values<T> |
of(T elem,
T... elems)
Returns a new
Create.Values transform that produces a PCollection containing
the specified elements. |
static <T> Create.OfValueProvider<T> |
ofProvider(ValueProvider<T> provider,
Coder<T> coder)
Returns an
Create.OfValueProvider transform that produces a PCollection of a single
element provided by the given ValueProvider . |
static <T> Create.TimestampedValues<T> |
timestamped(java.lang.Iterable<T> values,
java.lang.Iterable<java.lang.Long> timestamps)
Returns a new root transform that produces a
PCollection containing the specified
elements with the specified timestamps. |
static <T> Create.TimestampedValues<T> |
timestamped(java.lang.Iterable<TimestampedValue<T>> elems)
Returns a new
Create.TimestampedValues transform that produces a PCollection
containing the elements of the provided Iterable with the specified timestamps. |
static <T> Create.TimestampedValues<T> |
timestamped(TimestampedValue<T> elem,
TimestampedValue<T>... elems)
Returns a new
Create.TimestampedValues transform that produces a PCollection
containing the specified elements with the specified timestamps. |
public static <T> Create.Values<T> of(java.lang.Iterable<T> elems)
Create.Values
transform that produces a PCollection
containing
elements of the provided Iterable
.
The argument should not be modified after this is called.
The elements of the output PCollection
will have a timestamp of negative infinity,
see timestamped(java.lang.Iterable<org.apache.beam.sdk.values.TimestampedValue<T>>)
for a way of creating a PCollection
with timestamped
elements.
By default, Create.Values
can automatically determine the Coder
to use if
all elements have the same non-parameterized run-time class, and a default coder is registered
for that class. See CoderRegistry
for details on how defaults are determined.
Otherwise, use Create.Values.withCoder(org.apache.beam.sdk.coders.Coder<T>)
to set the coder explicitly.
@SafeVarargs public static <T> Create.Values<T> of(@Nullable T elem, @Nullable T... elems)
Create.Values
transform that produces a PCollection
containing
the specified elements.
The elements will have a timestamp of negative infinity, see timestamped(java.lang.Iterable<org.apache.beam.sdk.values.TimestampedValue<T>>)
for
a way of creating a PCollection
with timestamped elements.
The arguments should not be modified after this is called.
By default, Create.Values
can automatically determine the Coder
to use if
all elements have the same non-parameterized run-time class, and a default coder is registered
for that class. See CoderRegistry
for details on how defaults are determined.
Otherwise, use Create.Values.withCoder(org.apache.beam.sdk.coders.Coder<T>)
to set the coder explicitly.
public static <T> Create.Values<T> empty(Coder<T> coder)
Create.Values
transform that produces an empty PCollection
.
The elements will have a timestamp of negative infinity, see timestamped(java.lang.Iterable<org.apache.beam.sdk.values.TimestampedValue<T>>)
for
a way of creating a PCollection
with timestamped elements.
Since there are no elements, the Coder
cannot be automatically determined. Instead,
the Coder
is provided via the coder
argument.
public static <T> Create.Values<T> empty(TypeDescriptor<T> type)
Create.Values
transform that produces an empty PCollection
.
The elements will have a timestamp of negative infinity, see timestamped(java.lang.Iterable<org.apache.beam.sdk.values.TimestampedValue<T>>)
for
a way of creating a PCollection
with timestamped elements.
Since there are no elements, the Coder
cannot be automatically determined. Instead,
the Coder
is determined from given TypeDescriptor<T>
. Note that a default coder
must be registered for the class described in the TypeDescriptor<T>
.
public static <K,V> Create.Values<KV<K,V>> of(java.util.Map<K,V> elems)
Create.Values
transform that produces a PCollection
of KV
s corresponding to the keys and values of the specified Map
.
The elements will have a timestamp of negative infinity, see timestamped(java.lang.Iterable<org.apache.beam.sdk.values.TimestampedValue<T>>)
for
a way of creating a PCollection
with timestamped elements.
By default, Create.Values
can automatically determine the Coder
to use if
all elements have the same non-parameterized run-time class, and a default coder is registered
for that class. See CoderRegistry
for details on how defaults are determined.
Otherwise, use Create.Values.withCoder(org.apache.beam.sdk.coders.Coder<T>)
to set the coder explicitly.
public static <T> Create.OfValueProvider<T> ofProvider(ValueProvider<T> provider, Coder<T> coder)
Create.OfValueProvider
transform that produces a PCollection
of a single
element provided by the given ValueProvider
.public static <T> Create.TimestampedValues<T> timestamped(java.lang.Iterable<TimestampedValue<T>> elems)
Create.TimestampedValues
transform that produces a PCollection
containing the elements of the provided Iterable
with the specified timestamps.
The argument should not be modified after this is called.
By default, Create.TimestampedValues
can automatically determine the Coder
to use if all elements have the same non-parameterized run-time class, and a default coder is
registered for that class. See CoderRegistry
for details on how defaults are
determined. Otherwise, use Create.TimestampedValues.withCoder(org.apache.beam.sdk.coders.Coder<T>)
to set the coder
explicitly.
@SafeVarargs public static <T> Create.TimestampedValues<T> timestamped(TimestampedValue<T> elem, TimestampedValue<T>... elems)
Create.TimestampedValues
transform that produces a PCollection
containing the specified elements with the specified timestamps.
The arguments should not be modified after this is called.
public static <T> Create.TimestampedValues<T> timestamped(java.lang.Iterable<T> values, java.lang.Iterable<java.lang.Long> timestamps)
PCollection
containing the specified
elements with the specified timestamps.
The arguments should not be modified after this is called.
By default, Create.TimestampedValues
can automatically determine the Coder
to use if all elements have the same non-parameterized run-time class, and a default coder is
registered for that class. See CoderRegistry
for details on how defaults are
determined. Otherwise, use Create.TimestampedValues.withCoder(org.apache.beam.sdk.coders.Coder<T>)
to set the coder
explicitly.
java.lang.IllegalArgumentException
- if there are a different number of values and timestamps