blob: 08edd6de29f0eb4dc41c7e6919cf51deea511e94 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_181-google-v7) on Mon Jan 27 16:42:30 PST 2020 -->
<title>PTransform (Apache Beam 2.20.0-SNAPSHOT)</title>
<meta name="date" content="2020-01-27">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="PTransform (Apache Beam 2.20.0-SNAPSHOT)";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":9,"i2":6,"i3":10,"i4":42,"i5":42,"i6":42,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/beam/sdk/transforms/ProcessFunction.html" title="interface in org.apache.beam.sdk.transforms"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/beam/sdk/transforms/Regex.html" title="class in org.apache.beam.sdk.transforms"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/beam/sdk/transforms/PTransform.html" target="_top">Frames</a></li>
<li><a href="PTransform.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.beam.sdk.transforms</div>
<h2 title="Class PTransform" class="title">Class PTransform&lt;InputT extends <a href="../../../../../org/apache/beam/sdk/values/PInput.html" title="interface in org.apache.beam.sdk.values">PInput</a>,OutputT extends <a href="../../../../../org/apache/beam/sdk/values/POutput.html" title="interface in org.apache.beam.sdk.values">POutput</a>&gt;</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.beam.sdk.transforms.PTransform&lt;InputT,OutputT&gt;</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>InputT</code> - the type of the input to this PTransform</dd>
<dd><code>OutputT</code> - the type of the output of this PTransform</dd>
</dl>
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>java.io.Serializable, <a href="../../../../../org/apache/beam/sdk/transforms/display/HasDisplayData.html" title="interface in org.apache.beam.sdk.transforms.display">HasDisplayData</a></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../../org/apache/beam/sdk/schemas/transforms/AddFields.Inner.html" title="class in org.apache.beam.sdk.schemas.transforms">AddFields.Inner</a>, <a href="../../../../../org/apache/beam/sdk/io/amqp/AmqpIO.Read.html" title="class in org.apache.beam.sdk.io.amqp">AmqpIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/amqp/AmqpIO.Write.html" title="class in org.apache.beam.sdk.io.amqp">AmqpIO.Write</a>, <a href="../../../../../org/apache/beam/runners/apex/ApexRunner.CreateApexPCollectionView.html" title="class in org.apache.beam.runners.apex">ApexRunner.CreateApexPCollectionView</a>, <a href="../../../../../org/apache/beam/sdk/extensions/sketching/ApproximateDistinct.GloballyDistinct.html" title="class in org.apache.beam.sdk.extensions.sketching">ApproximateDistinct.GloballyDistinct</a>, <a href="../../../../../org/apache/beam/sdk/extensions/sketching/ApproximateDistinct.PerKeyDistinct.html" title="class in org.apache.beam.sdk.extensions.sketching">ApproximateDistinct.PerKeyDistinct</a>, <a href="../../../../../org/apache/beam/sdk/transforms/ApproximateUnique.Globally.html" title="class in org.apache.beam.sdk.transforms">ApproximateUnique.Globally</a>, <a href="../../../../../org/apache/beam/sdk/transforms/ApproximateUnique.PerKey.html" title="class in org.apache.beam.sdk.transforms">ApproximateUnique.PerKey</a>, <a href="../../../../../org/apache/beam/sdk/extensions/jackson/AsJsons.html" title="class in org.apache.beam.sdk.extensions.jackson">AsJsons</a>, <a href="../../../../../org/apache/beam/sdk/extensions/jackson/AsJsons.AsJsonsWithFailures.html" title="class in org.apache.beam.sdk.extensions.jackson">AsJsons.AsJsonsWithFailures</a>, <a href="../../../../../org/apache/beam/sdk/io/AvroIO.Parse.html" title="class in org.apache.beam.sdk.io">AvroIO.Parse</a>, <a href="../../../../../org/apache/beam/sdk/io/AvroIO.ParseAll.html" title="class in org.apache.beam.sdk.io">AvroIO.ParseAll</a>, <a href="../../../../../org/apache/beam/sdk/io/AvroIO.ParseFiles.html" title="class in org.apache.beam.sdk.io">AvroIO.ParseFiles</a>, <a href="../../../../../org/apache/beam/sdk/io/AvroIO.Read.html" title="class in org.apache.beam.sdk.io">AvroIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/AvroIO.ReadAll.html" title="class in org.apache.beam.sdk.io">AvroIO.ReadAll</a>, <a href="../../../../../org/apache/beam/sdk/io/AvroIO.ReadFiles.html" title="class in org.apache.beam.sdk.io">AvroIO.ReadFiles</a>, <a href="../../../../../org/apache/beam/sdk/io/AvroIO.TypedWrite.html" title="class in org.apache.beam.sdk.io">AvroIO.TypedWrite</a>, <a href="../../../../../org/apache/beam/sdk/io/AvroIO.Write.html" title="class in org.apache.beam.sdk.io">AvroIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamJoinRel.ExtractJoinKeys.html" title="class in org.apache.beam.sdk.extensions.sql.impl.rel">BeamJoinRel.ExtractJoinKeys</a>, <a href="../../../../../org/apache/beam/sdk/extensions/sql/impl/transform/BeamJoinTransforms.JoinAsLookup.html" title="class in org.apache.beam.sdk.extensions.sql.impl.transform">BeamJoinTransforms.JoinAsLookup</a>, <a href="../../../../../org/apache/beam/sdk/extensions/sql/meta/provider/kafka/BeamKafkaCSVTable.CsvRecorderDecoder.html" title="class in org.apache.beam.sdk.extensions.sql.meta.provider.kafka">BeamKafkaCSVTable.CsvRecorderDecoder</a>, <a href="../../../../../org/apache/beam/sdk/extensions/sql/meta/provider/kafka/BeamKafkaCSVTable.CsvRecorderEncoder.html" title="class in org.apache.beam.sdk.extensions.sql.meta.provider.kafka">BeamKafkaCSVTable.CsvRecorderEncoder</a>, <a href="../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamSetOperatorRelBase.html" title="class in org.apache.beam.sdk.extensions.sql.impl.rel">BeamSetOperatorRelBase</a>, <a href="../../../../../org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.Read.html" title="class in org.apache.beam.sdk.io.gcp.bigquery">BigQueryIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.Write.html" title="class in org.apache.beam.sdk.io.gcp.bigquery">BigQueryIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/io/gcp/bigtable/BigtableIO.Read.html" title="class in org.apache.beam.sdk.io.gcp.bigtable">BigtableIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/gcp/bigtable/BigtableIO.Write.html" title="class in org.apache.beam.sdk.io.gcp.bigtable">BigtableIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/io/gcp/bigtable/BigtableIO.WriteWithResults.html" title="class in org.apache.beam.sdk.io.gcp.bigtable">BigtableIO.WriteWithResults</a>, <a href="../../../../../org/apache/beam/sdk/io/BoundedReadFromUnboundedSource.html" title="class in org.apache.beam.sdk.io">BoundedReadFromUnboundedSource</a>, <a href="../../../../../org/apache/beam/sdk/io/cassandra/CassandraIO.Read.html" title="class in org.apache.beam.sdk.io.cassandra">CassandraIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/cassandra/CassandraIO.Write.html" title="class in org.apache.beam.sdk.io.cassandra">CassandraIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/schemas/transforms/Cast.html" title="class in org.apache.beam.sdk.schemas.transforms">Cast</a>, <a href="../../../../../org/apache/beam/sdk/io/clickhouse/ClickHouseIO.Write.html" title="class in org.apache.beam.sdk.io.clickhouse">ClickHouseIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/schemas/transforms/CoGroup.ExpandCrossProduct.html" title="class in org.apache.beam.sdk.schemas.transforms">CoGroup.ExpandCrossProduct</a>, <a href="../../../../../org/apache/beam/sdk/schemas/transforms/CoGroup.Impl.html" title="class in org.apache.beam.sdk.schemas.transforms">CoGroup.Impl</a>, <a href="../../../../../org/apache/beam/sdk/transforms/join/CoGroupByKey.html" title="class in org.apache.beam.sdk.transforms.join">CoGroupByKey</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Combine.Globally.html" title="class in org.apache.beam.sdk.transforms">Combine.Globally</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Combine.GloballyAsSingletonView.html" title="class in org.apache.beam.sdk.transforms">Combine.GloballyAsSingletonView</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Combine.GroupedValues.html" title="class in org.apache.beam.sdk.transforms">Combine.GroupedValues</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Combine.PerKey.html" title="class in org.apache.beam.sdk.transforms">Combine.PerKey</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Combine.PerKeyWithHotKeyFanout.html" title="class in org.apache.beam.sdk.transforms">Combine.PerKeyWithHotKeyFanout</a>, <a href="../../../../../org/apache/beam/runners/spark/io/ConsoleIO.Write.Unbound.html" title="class in org.apache.beam.runners.spark.io">ConsoleIO.Write.Unbound</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Create.OfValueProvider.html" title="class in org.apache.beam.sdk.transforms">Create.OfValueProvider</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Create.TimestampedValues.html" title="class in org.apache.beam.sdk.transforms">Create.TimestampedValues</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Create.Values.html" title="class in org.apache.beam.sdk.transforms">Create.Values</a>, <a href="../../../../../org/apache/beam/runners/dataflow/CreateDataflowView.html" title="class in org.apache.beam.runners.dataflow">CreateDataflowView</a>, <a href="../../../../../org/apache/beam/runners/spark/io/CreateStream.html" title="class in org.apache.beam.runners.spark.io">CreateStream</a>, <a href="../../../../../org/apache/beam/sdk/io/gcp/bigquery/CreateTables.html" title="class in org.apache.beam.sdk.io.gcp.bigquery">CreateTables</a>, <a href="../../../../../org/apache/beam/sdk/io/gcp/datastore/DatastoreV1.DeleteEntity.html" title="class in org.apache.beam.sdk.io.gcp.datastore">DatastoreV1.DeleteEntity</a>, <a href="../../../../../org/apache/beam/sdk/io/gcp/datastore/DatastoreV1.DeleteKey.html" title="class in org.apache.beam.sdk.io.gcp.datastore">DatastoreV1.DeleteKey</a>, <a href="../../../../../org/apache/beam/sdk/io/gcp/datastore/DatastoreV1.Read.html" title="class in org.apache.beam.sdk.io.gcp.datastore">DatastoreV1.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/gcp/datastore/DatastoreV1.Write.html" title="class in org.apache.beam.sdk.io.gcp.datastore">DatastoreV1.Write</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Distinct.html" title="class in org.apache.beam.sdk.transforms">Distinct</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Distinct.WithRepresentativeValues.html" title="class in org.apache.beam.sdk.transforms">Distinct.WithRepresentativeValues</a>, <a href="../../../../../org/apache/beam/sdk/schemas/transforms/DropFields.Inner.html" title="class in org.apache.beam.sdk.schemas.transforms">DropFields.Inner</a>, <a href="../../../../../org/apache/beam/sdk/io/aws/dynamodb/DynamoDBIO.Read.html" title="class in org.apache.beam.sdk.io.aws.dynamodb">DynamoDBIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/aws2/dynamodb/DynamoDBIO.Read.html" title="class in org.apache.beam.sdk.io.aws2.dynamodb">DynamoDBIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/aws/dynamodb/DynamoDBIO.Write.html" title="class in org.apache.beam.sdk.io.aws.dynamodb">DynamoDBIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/io/aws2/dynamodb/DynamoDBIO.Write.html" title="class in org.apache.beam.sdk.io.aws2.dynamodb">DynamoDBIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/io/elasticsearch/ElasticsearchIO.Read.html" title="class in org.apache.beam.sdk.io.elasticsearch">ElasticsearchIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/elasticsearch/ElasticsearchIO.Write.html" title="class in org.apache.beam.sdk.io.elasticsearch">ElasticsearchIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/io/FileIO.Match.html" title="class in org.apache.beam.sdk.io">FileIO.Match</a>, <a href="../../../../../org/apache/beam/sdk/io/FileIO.MatchAll.html" title="class in org.apache.beam.sdk.io">FileIO.MatchAll</a>, <a href="../../../../../org/apache/beam/sdk/io/FileIO.ReadMatches.html" title="class in org.apache.beam.sdk.io">FileIO.ReadMatches</a>, <a href="../../../../../org/apache/beam/sdk/io/FileIO.Write.html" title="class in org.apache.beam.sdk.io">FileIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Filter.html" title="class in org.apache.beam.sdk.transforms">Filter</a>, <a href="../../../../../org/apache/beam/sdk/schemas/transforms/Filter.Inner.html" title="class in org.apache.beam.sdk.schemas.transforms">Filter.Inner</a>, <a href="../../../../../org/apache/beam/sdk/transforms/FlatMapElements.html" title="class in org.apache.beam.sdk.transforms">FlatMapElements</a>, <a href="../../../../../org/apache/beam/sdk/transforms/FlatMapElements.FlatMapWithFailures.html" title="class in org.apache.beam.sdk.transforms">FlatMapElements.FlatMapWithFailures</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Flatten.Iterables.html" title="class in org.apache.beam.sdk.transforms">Flatten.Iterables</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Flatten.PCollections.html" title="class in org.apache.beam.sdk.transforms">Flatten.PCollections</a>, org.apache.beam.runners.core.construction.ForwardingPTransform, <a href="../../../../../org/apache/beam/sdk/io/GenerateSequence.html" title="class in org.apache.beam.sdk.io">GenerateSequence</a>, <a href="../../../../../org/apache/beam/sdk/extensions/sql/meta/provider/parquet/GenericRecordReadConverter.html" title="class in org.apache.beam.sdk.extensions.sql.meta.provider.parquet">GenericRecordReadConverter</a>, <a href="../../../../../org/apache/beam/sdk/extensions/sql/meta/provider/avro/GenericRecordWriteConverter.html" title="class in org.apache.beam.sdk.extensions.sql.meta.provider.avro">GenericRecordWriteConverter</a>, <a href="../../../../../org/apache/beam/sdk/schemas/transforms/Group.ByFields.html" title="class in org.apache.beam.sdk.schemas.transforms">Group.ByFields</a>, <a href="../../../../../org/apache/beam/sdk/schemas/transforms/Group.CombineFieldsByFields.html" title="class in org.apache.beam.sdk.schemas.transforms">Group.CombineFieldsByFields</a>, <a href="../../../../../org/apache/beam/sdk/schemas/transforms/Group.CombineFieldsGlobally.html" title="class in org.apache.beam.sdk.schemas.transforms">Group.CombineFieldsGlobally</a>, <a href="../../../../../org/apache/beam/sdk/schemas/transforms/Group.CombineGlobally.html" title="class in org.apache.beam.sdk.schemas.transforms">Group.CombineGlobally</a>, <a href="../../../../../org/apache/beam/sdk/schemas/transforms/Group.Global.html" title="class in org.apache.beam.sdk.schemas.transforms">Group.Global</a>, <a href="../../../../../org/apache/beam/sdk/transforms/GroupByKey.html" title="class in org.apache.beam.sdk.transforms">GroupByKey</a>, <a href="../../../../../org/apache/beam/sdk/transforms/GroupIntoBatches.html" title="class in org.apache.beam.sdk.transforms">GroupIntoBatches</a>, <a href="../../../../../org/apache/beam/sdk/io/hadoop/format/HadoopFormatIO.Read.html" title="class in org.apache.beam.sdk.io.hadoop.format">HadoopFormatIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/hadoop/format/HadoopFormatIO.Write.html" title="class in org.apache.beam.sdk.io.hadoop.format">HadoopFormatIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.Read.html" title="class in org.apache.beam.sdk.io.hbase">HBaseIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.ReadAll.html" title="class in org.apache.beam.sdk.io.hbase">HBaseIO.ReadAll</a>, <a href="../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.Write.html" title="class in org.apache.beam.sdk.io.hbase">HBaseIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/io/hcatalog/HCatalogIO.Read.html" title="class in org.apache.beam.sdk.io.hcatalog">HCatalogIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/hcatalog/HCatalogIO.Write.html" title="class in org.apache.beam.sdk.io.hcatalog">HCatalogIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Impulse.html" title="class in org.apache.beam.sdk.transforms">Impulse</a>, <a href="../../../../../org/apache/beam/sdk/io/jdbc/JdbcIO.Read.html" title="class in org.apache.beam.sdk.io.jdbc">JdbcIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/jdbc/JdbcIO.ReadAll.html" title="class in org.apache.beam.sdk.io.jdbc">JdbcIO.ReadAll</a>, <a href="../../../../../org/apache/beam/sdk/io/jdbc/JdbcIO.ReadRows.html" title="class in org.apache.beam.sdk.io.jdbc">JdbcIO.ReadRows</a>, <a href="../../../../../org/apache/beam/sdk/io/jdbc/JdbcIO.Write.html" title="class in org.apache.beam.sdk.io.jdbc">JdbcIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/io/jdbc/JdbcIO.WriteVoid.html" title="class in org.apache.beam.sdk.io.jdbc">JdbcIO.WriteVoid</a>, <a href="../../../../../org/apache/beam/sdk/io/jms/JmsIO.Read.html" title="class in org.apache.beam.sdk.io.jms">JmsIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/jms/JmsIO.Write.html" title="class in org.apache.beam.sdk.io.jms">JmsIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/extensions/joinlibrary/Join.FullOuterJoin.html" title="class in org.apache.beam.sdk.extensions.joinlibrary">Join.FullOuterJoin</a>, <a href="../../../../../org/apache/beam/sdk/schemas/transforms/Join.Impl.html" title="class in org.apache.beam.sdk.schemas.transforms">Join.Impl</a>, <a href="../../../../../org/apache/beam/sdk/extensions/joinlibrary/Join.InnerJoin.html" title="class in org.apache.beam.sdk.extensions.joinlibrary">Join.InnerJoin</a>, <a href="../../../../../org/apache/beam/sdk/extensions/joinlibrary/Join.LeftOuterJoin.html" title="class in org.apache.beam.sdk.extensions.joinlibrary">Join.LeftOuterJoin</a>, <a href="../../../../../org/apache/beam/sdk/extensions/joinlibrary/Join.RightOuterJoin.html" title="class in org.apache.beam.sdk.extensions.joinlibrary">Join.RightOuterJoin</a>, <a href="../../../../../org/apache/beam/sdk/io/kafka/KafkaIO.Read.html" title="class in org.apache.beam.sdk.io.kafka">KafkaIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/kafka/KafkaIO.TypedWithoutMetadata.html" title="class in org.apache.beam.sdk.io.kafka">KafkaIO.TypedWithoutMetadata</a>, <a href="../../../../../org/apache/beam/sdk/io/kafka/KafkaIO.Write.html" title="class in org.apache.beam.sdk.io.kafka">KafkaIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/io/kafka/KafkaIO.WriteRecords.html" title="class in org.apache.beam.sdk.io.kafka">KafkaIO.WriteRecords</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Keys.html" title="class in org.apache.beam.sdk.transforms">Keys</a>, <a href="../../../../../org/apache/beam/sdk/io/kinesis/KinesisIO.Read.html" title="class in org.apache.beam.sdk.io.kinesis">KinesisIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/kinesis/KinesisIO.Write.html" title="class in org.apache.beam.sdk.io.kinesis">KinesisIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/transforms/KvSwap.html" title="class in org.apache.beam.sdk.transforms">KvSwap</a>, <a href="../../../../../org/apache/beam/sdk/transforms/MapElements.html" title="class in org.apache.beam.sdk.transforms">MapElements</a>, <a href="../../../../../org/apache/beam/sdk/transforms/MapElements.MapWithFailures.html" title="class in org.apache.beam.sdk.transforms">MapElements.MapWithFailures</a>, <a href="../../../../../org/apache/beam/sdk/io/mongodb/MongoDbGridFSIO.Read.html" title="class in org.apache.beam.sdk.io.mongodb">MongoDbGridFSIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/mongodb/MongoDbGridFSIO.Write.html" title="class in org.apache.beam.sdk.io.mongodb">MongoDbGridFSIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/io/mongodb/MongoDbIO.Read.html" title="class in org.apache.beam.sdk.io.mongodb">MongoDbIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/mongodb/MongoDbIO.Write.html" title="class in org.apache.beam.sdk.io.mongodb">MongoDbIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/extensions/sql/meta/provider/mongodb/MongoDbTable.DocumentToRow.html" title="class in org.apache.beam.sdk.extensions.sql.meta.provider.mongodb">MongoDbTable.DocumentToRow</a>, <a href="../../../../../org/apache/beam/sdk/extensions/sql/meta/provider/mongodb/MongoDbTable.RowToDocument.html" title="class in org.apache.beam.sdk.extensions.sql.meta.provider.mongodb">MongoDbTable.RowToDocument</a>, <a href="../../../../../org/apache/beam/sdk/io/mqtt/MqttIO.Read.html" title="class in org.apache.beam.sdk.io.mqtt">MqttIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/mqtt/MqttIO.Write.html" title="class in org.apache.beam.sdk.io.mqtt">MqttIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/transforms/ParDo.MultiOutput.html" title="class in org.apache.beam.sdk.transforms">ParDo.MultiOutput</a>, <a href="../../../../../org/apache/beam/sdk/transforms/ParDo.SingleOutput.html" title="class in org.apache.beam.sdk.transforms">ParDo.SingleOutput</a>, <a href="../../../../../org/apache/beam/sdk/io/parquet/ParquetIO.Read.html" title="class in org.apache.beam.sdk.io.parquet">ParquetIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/parquet/ParquetIO.ReadFiles.html" title="class in org.apache.beam.sdk.io.parquet">ParquetIO.ReadFiles</a>, <a href="../../../../../org/apache/beam/sdk/extensions/jackson/ParseJsons.html" title="class in org.apache.beam.sdk.extensions.jackson">ParseJsons</a>, <a href="../../../../../org/apache/beam/sdk/extensions/jackson/ParseJsons.ParseJsonsWithFailures.html" title="class in org.apache.beam.sdk.extensions.jackson">ParseJsons.ParseJsonsWithFailures</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Partition.html" title="class in org.apache.beam.sdk.transforms">Partition</a>, <a href="../../../../../org/apache/beam/sdk/testing/PAssert.DefaultConcludeTransform.html" title="class in org.apache.beam.sdk.testing">PAssert.DefaultConcludeTransform</a>, <a href="../../../../../org/apache/beam/sdk/testing/PAssert.GroupThenAssert.html" title="class in org.apache.beam.sdk.testing">PAssert.GroupThenAssert</a>, <a href="../../../../../org/apache/beam/sdk/testing/PAssert.GroupThenAssertForSingleton.html" title="class in org.apache.beam.sdk.testing">PAssert.GroupThenAssertForSingleton</a>, <a href="../../../../../org/apache/beam/sdk/testing/PAssert.OneSideInputAssert.html" title="class in org.apache.beam.sdk.testing">PAssert.OneSideInputAssert</a>, <a href="../../../../../org/apache/beam/sdk/io/gcp/bigquery/PrepareWrite.html" title="class in org.apache.beam.sdk.io.gcp.bigquery">PrepareWrite</a>, <a href="../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubIO.Read.html" title="class in org.apache.beam.sdk.io.gcp.pubsub">PubsubIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubIO.Write.html" title="class in org.apache.beam.sdk.io.gcp.pubsub">PubsubIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/extensions/sql/meta/provider/pubsub/PubsubMessageToRow.html" title="class in org.apache.beam.sdk.extensions.sql.meta.provider.pubsub">PubsubMessageToRow</a>, <a href="../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSink.html" title="class in org.apache.beam.sdk.io.gcp.pubsub">PubsubUnboundedSink</a>, <a href="../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSource.html" title="class in org.apache.beam.sdk.io.gcp.pubsub">PubsubUnboundedSource</a>, <a href="../../../../../org/apache/beam/sdk/io/Read.Bounded.html" title="class in org.apache.beam.sdk.io">Read.Bounded</a>, <a href="../../../../../org/apache/beam/sdk/io/Read.Unbounded.html" title="class in org.apache.beam.sdk.io">Read.Unbounded</a>, <a href="../../../../../org/apache/beam/sdk/io/ReadAllViaFileBasedSource.html" title="class in org.apache.beam.sdk.io">ReadAllViaFileBasedSource</a>, <a href="../../../../../org/apache/beam/sdk/io/redis/RedisIO.Read.html" title="class in org.apache.beam.sdk.io.redis">RedisIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/redis/RedisIO.ReadAll.html" title="class in org.apache.beam.sdk.io.redis">RedisIO.ReadAll</a>, <a href="../../../../../org/apache/beam/sdk/io/redis/RedisIO.Write.html" title="class in org.apache.beam.sdk.io.redis">RedisIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Regex.AllMatches.html" title="class in org.apache.beam.sdk.transforms">Regex.AllMatches</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Regex.Find.html" title="class in org.apache.beam.sdk.transforms">Regex.Find</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Regex.FindAll.html" title="class in org.apache.beam.sdk.transforms">Regex.FindAll</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Regex.FindKV.html" title="class in org.apache.beam.sdk.transforms">Regex.FindKV</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Regex.FindName.html" title="class in org.apache.beam.sdk.transforms">Regex.FindName</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Regex.FindNameKV.html" title="class in org.apache.beam.sdk.transforms">Regex.FindNameKV</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Regex.Matches.html" title="class in org.apache.beam.sdk.transforms">Regex.Matches</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Regex.MatchesKV.html" title="class in org.apache.beam.sdk.transforms">Regex.MatchesKV</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Regex.MatchesName.html" title="class in org.apache.beam.sdk.transforms">Regex.MatchesName</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Regex.MatchesNameKV.html" title="class in org.apache.beam.sdk.transforms">Regex.MatchesNameKV</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Regex.ReplaceAll.html" title="class in org.apache.beam.sdk.transforms">Regex.ReplaceAll</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Regex.ReplaceFirst.html" title="class in org.apache.beam.sdk.transforms">Regex.ReplaceFirst</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Regex.Split.html" title="class in org.apache.beam.sdk.transforms">Regex.Split</a>, <a href="../../../../../org/apache/beam/sdk/io/gcp/bigquery/ReifyAsIterable.html" title="class in org.apache.beam.sdk.io.gcp.bigquery">ReifyAsIterable</a>, <a href="../../../../../org/apache/beam/sdk/schemas/transforms/RenameFields.Inner.html" title="class in org.apache.beam.sdk.schemas.transforms">RenameFields.Inner</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Reshuffle.html" title="class in org.apache.beam.sdk.transforms">Reshuffle</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Reshuffle.ViaRandomKey.html" title="class in org.apache.beam.sdk.transforms">Reshuffle.ViaRandomKey</a>, <a href="../../../../../org/apache/beam/sdk/extensions/sql/meta/provider/pubsub/RowToPubsubMessage.html" title="class in org.apache.beam.sdk.extensions.sql.meta.provider.pubsub">RowToPubsubMessage</a>, <a href="../../../../../org/apache/beam/sdk/schemas/transforms/Select.html" title="class in org.apache.beam.sdk.schemas.transforms">Select</a>, <a href="../../../../../org/apache/beam/sdk/extensions/sketching/SketchFrequencies.GlobalSketch.html" title="class in org.apache.beam.sdk.extensions.sketching">SketchFrequencies.GlobalSketch</a>, <a href="../../../../../org/apache/beam/sdk/extensions/sketching/SketchFrequencies.PerKeySketch.html" title="class in org.apache.beam.sdk.extensions.sketching">SketchFrequencies.PerKeySketch</a>, <a href="../../../../../org/apache/beam/sdk/io/aws/sns/SnsIO.Write.html" title="class in org.apache.beam.sdk.io.aws.sns">SnsIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/io/aws2/sns/SnsIO.Write.html" title="class in org.apache.beam.sdk.io.aws2.sns">SnsIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/io/solr/SolrIO.Read.html" title="class in org.apache.beam.sdk.io.solr">SolrIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/solr/SolrIO.Write.html" title="class in org.apache.beam.sdk.io.solr">SolrIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/extensions/sorter/SortValues.html" title="class in org.apache.beam.sdk.extensions.sorter">SortValues</a>, <a href="../../../../../org/apache/beam/sdk/io/gcp/spanner/SpannerIO.CreateTransaction.html" title="class in org.apache.beam.sdk.io.gcp.spanner">SpannerIO.CreateTransaction</a>, <a href="../../../../../org/apache/beam/sdk/io/gcp/spanner/SpannerIO.Read.html" title="class in org.apache.beam.sdk.io.gcp.spanner">SpannerIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/gcp/spanner/SpannerIO.ReadAll.html" title="class in org.apache.beam.sdk.io.gcp.spanner">SpannerIO.ReadAll</a>, <a href="../../../../../org/apache/beam/sdk/io/gcp/spanner/SpannerIO.Write.html" title="class in org.apache.beam.sdk.io.gcp.spanner">SpannerIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/extensions/sql/SqlTransform.html" title="class in org.apache.beam.sdk.extensions.sql">SqlTransform</a>, <a href="../../../../../org/apache/beam/sdk/io/aws/sqs/SqsIO.Read.html" title="class in org.apache.beam.sdk.io.aws.sqs">SqsIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/aws2/sqs/SqsIO.Read.html" title="class in org.apache.beam.sdk.io.aws2.sqs">SqsIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/aws/sqs/SqsIO.Write.html" title="class in org.apache.beam.sdk.io.aws.sqs">SqsIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/io/aws2/sqs/SqsIO.Write.html" title="class in org.apache.beam.sdk.io.aws2.sqs">SqsIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/io/gcp/bigquery/StreamingInserts.html" title="class in org.apache.beam.sdk.io.gcp.bigquery">StreamingInserts</a>, <a href="../../../../../org/apache/beam/sdk/io/gcp/bigquery/StreamingWriteTables.html" title="class in org.apache.beam.sdk.io.gcp.bigquery">StreamingWriteTables</a>, <a href="../../../../../org/apache/beam/sdk/extensions/sketching/TDigestQuantiles.GlobalDigest.html" title="class in org.apache.beam.sdk.extensions.sketching">TDigestQuantiles.GlobalDigest</a>, <a href="../../../../../org/apache/beam/sdk/extensions/sketching/TDigestQuantiles.PerKeyDigest.html" title="class in org.apache.beam.sdk.extensions.sketching">TDigestQuantiles.PerKeyDigest</a>, <a href="../../../../../org/apache/beam/sdk/testing/TestStream.html" title="class in org.apache.beam.sdk.testing">TestStream</a>, <a href="../../../../../org/apache/beam/sdk/io/TextIO.Read.html" title="class in org.apache.beam.sdk.io">TextIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/TextIO.ReadAll.html" title="class in org.apache.beam.sdk.io">TextIO.ReadAll</a>, <a href="../../../../../org/apache/beam/sdk/io/TextIO.ReadFiles.html" title="class in org.apache.beam.sdk.io">TextIO.ReadFiles</a>, <a href="../../../../../org/apache/beam/sdk/io/TextIO.TypedWrite.html" title="class in org.apache.beam.sdk.io">TextIO.TypedWrite</a>, <a href="../../../../../org/apache/beam/sdk/io/TextIO.Write.html" title="class in org.apache.beam.sdk.io">TextIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/extensions/sql/meta/provider/text/TextTableProvider.CsvToRow.html" title="class in org.apache.beam.sdk.extensions.sql.meta.provider.text">TextTableProvider.CsvToRow</a>, <a href="../../../../../org/apache/beam/sdk/extensions/sql/meta/provider/text/TextTableProvider.LinesReadConverter.html" title="class in org.apache.beam.sdk.extensions.sql.meta.provider.text">TextTableProvider.LinesReadConverter</a>, <a href="../../../../../org/apache/beam/sdk/extensions/sql/meta/provider/text/TextTableProvider.LinesWriteConverter.html" title="class in org.apache.beam.sdk.extensions.sql.meta.provider.text">TextTableProvider.LinesWriteConverter</a>, <a href="../../../../../org/apache/beam/sdk/io/TFRecordIO.Read.html" title="class in org.apache.beam.sdk.io">TFRecordIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/TFRecordIO.ReadFiles.html" title="class in org.apache.beam.sdk.io">TFRecordIO.ReadFiles</a>, <a href="../../../../../org/apache/beam/sdk/io/TFRecordIO.Write.html" title="class in org.apache.beam.sdk.io">TFRecordIO.Write</a>, <a href="../../../../../org/apache/beam/sdk/io/tika/TikaIO.Parse.html" title="class in org.apache.beam.sdk.io.tika">TikaIO.Parse</a>, <a href="../../../../../org/apache/beam/sdk/io/tika/TikaIO.ParseFiles.html" title="class in org.apache.beam.sdk.io.tika">TikaIO.ParseFiles</a>, <a href="../../../../../org/apache/beam/sdk/transforms/ToJson.html" title="class in org.apache.beam.sdk.transforms">ToJson</a>, <a href="../../../../../org/apache/beam/sdk/schemas/transforms/Unnest.Inner.html" title="class in org.apache.beam.sdk.schemas.transforms">Unnest.Inner</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Values.html" title="class in org.apache.beam.sdk.transforms">Values</a>, <a href="../../../../../org/apache/beam/sdk/transforms/View.AsIterable.html" title="class in org.apache.beam.sdk.transforms">View.AsIterable</a>, <a href="../../../../../org/apache/beam/sdk/transforms/View.AsList.html" title="class in org.apache.beam.sdk.transforms">View.AsList</a>, <a href="../../../../../org/apache/beam/sdk/transforms/View.AsMap.html" title="class in org.apache.beam.sdk.transforms">View.AsMap</a>, <a href="../../../../../org/apache/beam/sdk/transforms/View.AsMultimap.html" title="class in org.apache.beam.sdk.transforms">View.AsMultimap</a>, <a href="../../../../../org/apache/beam/sdk/transforms/View.AsSingleton.html" title="class in org.apache.beam.sdk.transforms">View.AsSingleton</a>, <a href="../../../../../org/apache/beam/sdk/transforms/View.CreatePCollectionView.html" title="class in org.apache.beam.sdk.transforms">View.CreatePCollectionView</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Wait.OnSignal.html" title="class in org.apache.beam.sdk.transforms">Wait.OnSignal</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Watch.Growth.html" title="class in org.apache.beam.sdk.transforms">Watch.Growth</a>, <a href="../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing">Window</a>, <a href="../../../../../org/apache/beam/sdk/transforms/windowing/Window.Assign.html" title="class in org.apache.beam.sdk.transforms.windowing">Window.Assign</a>, <a href="../../../../../org/apache/beam/sdk/transforms/WithKeys.html" title="class in org.apache.beam.sdk.transforms">WithKeys</a>, <a href="../../../../../org/apache/beam/sdk/transforms/WithTimestamps.html" title="class in org.apache.beam.sdk.transforms">WithTimestamps</a>, <a href="../../../../../org/apache/beam/runners/spark/structuredstreaming/examples/WordCount.CountWords.html" title="class in org.apache.beam.runners.spark.structuredstreaming.examples">WordCount.CountWords</a>, <a href="../../../../../org/apache/beam/sdk/io/WriteFiles.html" title="class in org.apache.beam.sdk.io">WriteFiles</a>, <a href="../../../../../org/apache/beam/sdk/io/xml/XmlIO.Read.html" title="class in org.apache.beam.sdk.io.xml">XmlIO.Read</a>, <a href="../../../../../org/apache/beam/sdk/io/xml/XmlIO.ReadFiles.html" title="class in org.apache.beam.sdk.io.xml">XmlIO.ReadFiles</a>, <a href="../../../../../org/apache/beam/sdk/io/xml/XmlIO.Write.html" title="class in org.apache.beam.sdk.io.xml">XmlIO.Write</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">PTransform&lt;InputT extends <a href="../../../../../org/apache/beam/sdk/values/PInput.html" title="interface in org.apache.beam.sdk.values">PInput</a>,OutputT extends <a href="../../../../../org/apache/beam/sdk/values/POutput.html" title="interface in org.apache.beam.sdk.values">POutput</a>&gt;</span>
extends java.lang.Object
implements java.io.Serializable, <a href="../../../../../org/apache/beam/sdk/transforms/display/HasDisplayData.html" title="interface in org.apache.beam.sdk.transforms.display">HasDisplayData</a></pre>
<div class="block">A <code>PTransform&lt;InputT, OutputT&gt;</code> is an operation that takes an <code>InputT</code> (some subtype
of <a href="../../../../../org/apache/beam/sdk/values/PInput.html" title="interface in org.apache.beam.sdk.values"><code>PInput</code></a>) and produces an <code>OutputT</code> (some subtype of <a href="../../../../../org/apache/beam/sdk/values/POutput.html" title="interface in org.apache.beam.sdk.values"><code>POutput</code></a>).
<p>Common PTransforms include root PTransforms like <a href="../../../../../org/apache/beam/sdk/io/TextIO.Read.html" title="class in org.apache.beam.sdk.io"><code>TextIO.Read</code></a>,
<a href="../../../../../org/apache/beam/sdk/transforms/Create.html" title="class in org.apache.beam.sdk.transforms"><code>Create</code></a>, processing and conversion operations like <a href="../../../../../org/apache/beam/sdk/transforms/ParDo.html" title="class in org.apache.beam.sdk.transforms"><code>ParDo</code></a>, <a href="../../../../../org/apache/beam/sdk/transforms/GroupByKey.html" title="class in org.apache.beam.sdk.transforms"><code>GroupByKey</code></a>,
<a href="../../../../../org/apache/beam/sdk/transforms/join/CoGroupByKey.html" title="class in org.apache.beam.sdk.transforms.join"><code>CoGroupByKey</code></a>, <a href="../../../../../org/apache/beam/sdk/transforms/Combine.html" title="class in org.apache.beam.sdk.transforms"><code>Combine</code></a>, and <a href="../../../../../org/apache/beam/sdk/transforms/Count.html" title="class in org.apache.beam.sdk.transforms"><code>Count</code></a>, and
outputting PTransforms like <a href="../../../../../org/apache/beam/sdk/io/TextIO.Write.html" title="class in org.apache.beam.sdk.io"><code>TextIO.Write</code></a>. Users also define their
own application-specific composite PTransforms.
<p>Each <code>PTransform&lt;InputT, OutputT&gt;</code> has a single <code>InputT</code> type and a single <code>OutputT</code> type. Many PTransforms conceptually transform one input value to one output value, and
in this case <code>InputT</code> and <code>Output</code> are typically instances of <a href="../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values"><code>PCollection</code></a>. A root PTransform conceptually has no input; in this
case, conventionally a <a href="../../../../../org/apache/beam/sdk/values/PBegin.html" title="class in org.apache.beam.sdk.values"><code>PBegin</code></a> object produced by calling
<a href="../../../../../org/apache/beam/sdk/Pipeline.html#begin--"><code>Pipeline.begin()</code></a> is used as the input. An outputting PTransform conceptually has no output;
in this case, conventionally <a href="../../../../../org/apache/beam/sdk/values/PDone.html" title="class in org.apache.beam.sdk.values"><code>PDone</code></a> is used as its output type.
Some PTransforms conceptually have multiple inputs and/or outputs; in these cases special
"bundling" classes like <a href="../../../../../org/apache/beam/sdk/values/PCollectionList.html" title="class in org.apache.beam.sdk.values"><code>PCollectionList</code></a>, <a href="../../../../../org/apache/beam/sdk/values/PCollectionTuple.html" title="class in org.apache.beam.sdk.values"><code>PCollectionTuple</code></a> are used to combine multiple values into a single
bundle for passing into or returning from the PTransform.
<p>A <code>PTransform&lt;InputT, OutputT&gt;</code> is invoked by calling <code>apply()</code> on its <code>InputT</code>, returning its <code>OutputT</code>. Calls can be chained to concisely create linear pipeline
segments. For example:
<pre><code>
PCollection&lt;T1&gt; pc1 = ...;
PCollection&lt;T2&gt; pc2 =
pc1.apply(ParDo.of(new MyDoFn&lt;T1,KV&lt;K,V&gt;&gt;()))
.apply(GroupByKey.&lt;K, V&gt;create())
.apply(Combine.perKey(new MyKeyedCombineFn&lt;K,V&gt;()))
.apply(ParDo.of(new MyDoFn2&lt;KV&lt;K,V&gt;,T2&gt;()));
</code></pre>
<p>PTransform operations have unique names, which are used by the system when explaining what's
going on during optimization and execution. Each PTransform gets a system-provided default name,
but it's a good practice to specify a more informative explicit name when applying the transform.
For example:
<pre><code>
...
.apply("Step1", ParDo.of(new MyDoFn3()))
...
</code></pre>
<p>Each PCollection output produced by a PTransform, either directly or within a "bundling"
class, automatically gets its own name derived from the name of its producing PTransform.
<p>Each PCollection output produced by a PTransform also records a <a href="../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders"><code>Coder</code></a> that specifies how the elements of that PCollection are to be
encoded as a byte string, if necessary. The PTransform may provide a default Coder for any of its
outputs, for instance by deriving it from the PTransform input's Coder. If the PTransform does
not specify the Coder for an output PCollection, the system will attempt to infer a Coder for it,
based on what's known at run-time about the Java type of the output's elements. The enclosing
<a href="../../../../../org/apache/beam/sdk/Pipeline.html" title="class in org.apache.beam.sdk"><code>Pipeline</code></a>'s <a href="../../../../../org/apache/beam/sdk/coders/CoderRegistry.html" title="class in org.apache.beam.sdk.coders"><code>CoderRegistry</code></a> (accessible via <a href="../../../../../org/apache/beam/sdk/Pipeline.html#getCoderRegistry--"><code>Pipeline.getCoderRegistry()</code></a>) defines the mapping from Java types to the default Coder to use, for
a standard set of Java types; users can extend this mapping for additional types, via <a href="../../../../../org/apache/beam/sdk/coders/CoderRegistry.html#registerCoderProvider-org.apache.beam.sdk.coders.CoderProvider-"><code>CoderRegistry.registerCoderProvider(org.apache.beam.sdk.coders.CoderProvider)</code></a>. If this inference process fails,
either because the Java type was not known at run-time (e.g., due to Java's "erasure" of generic
types) or there was no default Coder registered, then the Coder should be specified manually by
calling <a href="../../../../../org/apache/beam/sdk/values/PCollection.html#setCoder-org.apache.beam.sdk.coders.Coder-"><code>PCollection.setCoder(org.apache.beam.sdk.coders.Coder&lt;T&gt;)</code></a> on the output PCollection. The Coder of every output
PCollection must be determined one way or another before that output is used as an input to
another PTransform, or before the enclosing Pipeline is run.
<p>A small number of PTransforms are implemented natively by the Apache Beam SDK; such
PTransforms simply return an output value as their apply implementation. The majority of
PTransforms are implemented as composites of other PTransforms. Such a PTransform subclass
typically just implements <a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html#expand-InputT-"><code>expand(InputT)</code></a>, computing its Output value from its <code>InputT</code>
value. User programs are encouraged to use this mechanism to modularize their own code. Such
composite abstractions get their own name, and navigating through the composition hierarchy of
PTransforms is supported by the monitoring interface. Examples of composite PTransforms can be
found in this directory and in examples. From the caller's point of view, there is no distinction
between a PTransform implemented natively and one implemented in terms of other PTransforms; both
kinds of PTransform are invoked in the same way, using <code>apply()</code>.
<h3>Note on Serialization</h3>
<p><code>PTransform</code> doesn't actually support serialization, despite implementing <code>Serializable</code>.
<p><code>PTransform</code> is marked <code>Serializable</code> solely because it is common for an anonymous
<a href="../../../../../org/apache/beam/sdk/transforms/DoFn.html" title="class in org.apache.beam.sdk.transforms"><code>DoFn</code></a>, instance to be created within an <code>apply()</code> method of a composite <code>PTransform</code>.
<p>Each of those <code>*Fn</code>s is <code>Serializable</code>, but unfortunately its instance state will
contain a reference to the enclosing <code>PTransform</code> instance, and so attempt to serialize the
<code>PTransform</code> instance, even though the <code>*Fn</code> instance never references anything about
the enclosing <code>PTransform</code>.
<p>To allow such anonymous <code>*Fn</code>s to be written conveniently, <code>PTransform</code> is marked
as <code>Serializable</code>, and includes dummy <code>writeObject()</code> and <code>readObject()</code>
operations that do not save or restore any state.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href= "https://beam.apache.org/documentation/programming-guide/#transforms" >Applying
Transformations</a>,
<a href="../../../../../serialized-form.html#org.apache.beam.sdk.transforms.PTransform">Serialized Form</a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html#name">name</a></span></code>
<div class="block">The base name of this <code>PTransform</code>, e.g., from defaults, or <code>null</code> if not yet
assigned.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html#PTransform--">PTransform</a></span>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html#PTransform-java.lang.String-">PTransform</a></span>(java.lang.String&nbsp;name)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static &lt;InputT extends <a href="../../../../../org/apache/beam/sdk/values/PInput.html" title="interface in org.apache.beam.sdk.values">PInput</a>,OutputT extends <a href="../../../../../org/apache/beam/sdk/values/POutput.html" title="interface in org.apache.beam.sdk.values">POutput</a>&gt;<br><a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms">PTransform</a>&lt;InputT,OutputT&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html#compose-org.apache.beam.sdk.transforms.SerializableFunction-">compose</a></span>(<a href="../../../../../org/apache/beam/sdk/transforms/SerializableFunction.html" title="interface in org.apache.beam.sdk.transforms">SerializableFunction</a>&lt;InputT,OutputT&gt;&nbsp;fn)</code>
<div class="block">For a <code>SerializableFunction&lt;InputT, OutputT&gt;</code> <code>fn</code>, returns a <code>PTransform</code>
given by applying <code>fn.apply(v)</code> to the input <code>PCollection&lt;InputT&gt;</code>.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static &lt;InputT extends <a href="../../../../../org/apache/beam/sdk/values/PInput.html" title="interface in org.apache.beam.sdk.values">PInput</a>,OutputT extends <a href="../../../../../org/apache/beam/sdk/values/POutput.html" title="interface in org.apache.beam.sdk.values">POutput</a>&gt;<br><a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms">PTransform</a>&lt;InputT,OutputT&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html#compose-java.lang.String-org.apache.beam.sdk.transforms.SerializableFunction-">compose</a></span>(java.lang.String&nbsp;name,
<a href="../../../../../org/apache/beam/sdk/transforms/SerializableFunction.html" title="interface in org.apache.beam.sdk.transforms">SerializableFunction</a>&lt;InputT,OutputT&gt;&nbsp;fn)</code>
<div class="block">Like <a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html#compose-org.apache.beam.sdk.transforms.SerializableFunction-"><code>compose(SerializableFunction)</code></a>, but with a custom name.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="type parameter in PTransform">OutputT</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html#expand-InputT-">expand</a></span>(<a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="type parameter in PTransform">InputT</a>&nbsp;input)</code>
<div class="block">Override this method to specify how this <code>PTransform</code> should be expanded on the given
<code>InputT</code>.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>java.util.Map&lt;<a href="../../../../../org/apache/beam/sdk/values/TupleTag.html" title="class in org.apache.beam.sdk.values">TupleTag</a>&lt;?&gt;,<a href="../../../../../org/apache/beam/sdk/values/PValue.html" title="interface in org.apache.beam.sdk.values">PValue</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html#getAdditionalInputs--">getAdditionalInputs</a></span>()</code>
<div class="block">Returns all <a href="../../../../../org/apache/beam/sdk/values/PValue.html" title="interface in org.apache.beam.sdk.values"><code>PValues</code></a> that are consumed as inputs to this <a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransform</code></a> that
are independent of the expansion of the <code>InputT</code> within <a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html#expand-InputT-"><code>expand(PInput)</code></a>.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;?&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html#getDefaultOutputCoder--">getDefaultOutputCoder</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Instead, the PTransform should explicitly call <a href="../../../../../org/apache/beam/sdk/values/PCollection.html#setCoder-org.apache.beam.sdk.coders.Coder-"><code>PCollection.setCoder(org.apache.beam.sdk.coders.Coder&lt;T&gt;)</code></a> on the
returned PCollection.</span></div>
</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;?&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html#getDefaultOutputCoder-InputT-">getDefaultOutputCoder</a></span>(<a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="type parameter in PTransform">InputT</a>&nbsp;input)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Instead, the PTransform should explicitly call <a href="../../../../../org/apache/beam/sdk/values/PCollection.html#setCoder-org.apache.beam.sdk.coders.Coder-"><code>PCollection.setCoder(org.apache.beam.sdk.coders.Coder&lt;T&gt;)</code></a> on the
returned PCollection.</span></div>
</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html#getDefaultOutputCoder-InputT-org.apache.beam.sdk.values.PCollection-">getDefaultOutputCoder</a></span>(<a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="type parameter in PTransform">InputT</a>&nbsp;input,
<a href="../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values">PCollection</a>&lt;T&gt;&nbsp;output)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Instead, the PTransform should explicitly call <a href="../../../../../org/apache/beam/sdk/values/PCollection.html#setCoder-org.apache.beam.sdk.coders.Coder-"><code>PCollection.setCoder(org.apache.beam.sdk.coders.Coder&lt;T&gt;)</code></a> on the
returned PCollection.</span></div>
</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html#getKindString--">getKindString</a></span>()</code>
<div class="block">Returns the name to use by default for this <code>PTransform</code> (not including the names of any
enclosing <code>PTransform</code>s).</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html#getName--">getName</a></span>()</code>
<div class="block">Returns the transform name.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html#populateDisplayData-org.apache.beam.sdk.transforms.display.DisplayData.Builder-">populateDisplayData</a></span>(<a href="../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Builder.html" title="interface in org.apache.beam.sdk.transforms.display">DisplayData.Builder</a>&nbsp;builder)</code>
<div class="block">Register display data for the given transform or component.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html#toString--">toString</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html#validate-org.apache.beam.sdk.options.PipelineOptions-">validate</a></span>(<a href="../../../../../org/apache/beam/sdk/options/PipelineOptions.html" title="interface in org.apache.beam.sdk.options">PipelineOptions</a>&nbsp;options)</code>
<div class="block">Called before running the Pipeline to verify this transform is fully and correctly specified.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="name">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>name</h4>
<pre><a href="https://static.javadoc.io/com.google.code.findbugs/jsr305/3.0.2/javax/annotation/Nullable.html?is-external=true" title="class or interface in javax.annotation">@Nullable</a>
protected final transient&nbsp;java.lang.String name</pre>
<div class="block">The base name of this <code>PTransform</code>, e.g., from defaults, or <code>null</code> if not yet
assigned.</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="PTransform--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PTransform</h4>
<pre>protected&nbsp;PTransform()</pre>
</li>
</ul>
<a name="PTransform-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>PTransform</h4>
<pre>protected&nbsp;PTransform(<a href="https://static.javadoc.io/com.google.code.findbugs/jsr305/3.0.2/javax/annotation/Nullable.html?is-external=true" title="class or interface in javax.annotation">@Nullable</a>
java.lang.String&nbsp;name)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="expand-org.apache.beam.sdk.values.PInput-">
<!-- -->
</a><a name="expand-InputT-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>expand</h4>
<pre>public abstract&nbsp;<a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="type parameter in PTransform">OutputT</a>&nbsp;expand(<a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="type parameter in PTransform">InputT</a>&nbsp;input)</pre>
<div class="block">Override this method to specify how this <code>PTransform</code> should be expanded on the given
<code>InputT</code>.
<p>NOTE: This method should not be called directly. Instead apply the <code>PTransform</code> should
be applied to the <code>InputT</code> using the <code>apply</code> method.
<p>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).</div>
</li>
</ul>
<a name="validate-org.apache.beam.sdk.options.PipelineOptions-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validate</h4>
<pre>public&nbsp;void&nbsp;validate(<a href="https://static.javadoc.io/com.google.code.findbugs/jsr305/3.0.2/javax/annotation/Nullable.html?is-external=true" title="class or interface in javax.annotation">@Nullable</a>
<a href="../../../../../org/apache/beam/sdk/options/PipelineOptions.html" title="interface in org.apache.beam.sdk.options">PipelineOptions</a>&nbsp;options)</pre>
<div class="block">Called before running the Pipeline to verify this transform is fully and correctly specified.
<p>By default, does nothing.</div>
</li>
</ul>
<a name="getAdditionalInputs--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAdditionalInputs</h4>
<pre>public&nbsp;java.util.Map&lt;<a href="../../../../../org/apache/beam/sdk/values/TupleTag.html" title="class in org.apache.beam.sdk.values">TupleTag</a>&lt;?&gt;,<a href="../../../../../org/apache/beam/sdk/values/PValue.html" title="interface in org.apache.beam.sdk.values">PValue</a>&gt;&nbsp;getAdditionalInputs()</pre>
<div class="block">Returns all <a href="../../../../../org/apache/beam/sdk/values/PValue.html" title="interface in org.apache.beam.sdk.values"><code>PValues</code></a> that are consumed as inputs to this <a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransform</code></a> that
are independent of the expansion of the <code>InputT</code> within <a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html#expand-InputT-"><code>expand(PInput)</code></a>.
<p>For example, this can contain any side input consumed by this <a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransform</code></a>.</div>
</li>
</ul>
<a name="getName--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getName</h4>
<pre>public&nbsp;java.lang.String&nbsp;getName()</pre>
<div class="block">Returns the transform name.
<p>This name is provided by the transform creator and is not required to be unique.</div>
</li>
</ul>
<a name="toString--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;java.lang.String&nbsp;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
</dl>
</li>
</ul>
<a name="getKindString--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getKindString</h4>
<pre>protected&nbsp;java.lang.String&nbsp;getKindString()</pre>
<div class="block">Returns the name to use by default for this <code>PTransform</code> (not including the names of any
enclosing <code>PTransform</code>s).
<p>By default, returns the base name of this <code>PTransform</code>'s class.
<p>The caller is responsible for ensuring that names of applied <code>PTransform</code>s are unique,
e.g., by adding a uniquifying suffix when needed.</div>
</li>
</ul>
<a name="getDefaultOutputCoder--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultOutputCoder</h4>
<pre>@Deprecated
protected&nbsp;<a href="../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;?&gt;&nbsp;getDefaultOutputCoder()
throws <a href="../../../../../org/apache/beam/sdk/coders/CannotProvideCoderException.html" title="class in org.apache.beam.sdk.coders">CannotProvideCoderException</a></pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Instead, the PTransform should explicitly call <a href="../../../../../org/apache/beam/sdk/values/PCollection.html#setCoder-org.apache.beam.sdk.coders.Coder-"><code>PCollection.setCoder(org.apache.beam.sdk.coders.Coder&lt;T&gt;)</code></a> on the
returned PCollection.</span></div>
<div class="block">Returns the default <code>Coder</code> to use for the output of this single-output <code>PTransform</code>.
<p>By default, always throws</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/beam/sdk/coders/CannotProvideCoderException.html" title="class in org.apache.beam.sdk.coders">CannotProvideCoderException</a></code> - if no coder can be inferred</dd>
</dl>
</li>
</ul>
<a name="getDefaultOutputCoder-org.apache.beam.sdk.values.PInput-">
<!-- -->
</a><a name="getDefaultOutputCoder-InputT-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultOutputCoder</h4>
<pre>@Deprecated
protected&nbsp;<a href="../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;?&gt;&nbsp;getDefaultOutputCoder(<a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="type parameter in PTransform">InputT</a>&nbsp;input)
throws <a href="../../../../../org/apache/beam/sdk/coders/CannotProvideCoderException.html" title="class in org.apache.beam.sdk.coders">CannotProvideCoderException</a></pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Instead, the PTransform should explicitly call <a href="../../../../../org/apache/beam/sdk/values/PCollection.html#setCoder-org.apache.beam.sdk.coders.Coder-"><code>PCollection.setCoder(org.apache.beam.sdk.coders.Coder&lt;T&gt;)</code></a> on the
returned PCollection.</span></div>
<div class="block">Returns the default <code>Coder</code> to use for the output of this single-output <code>PTransform</code> when applied to the given input.
<p>By default, always throws.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/beam/sdk/coders/CannotProvideCoderException.html" title="class in org.apache.beam.sdk.coders">CannotProvideCoderException</a></code> - if none can be inferred.</dd>
</dl>
</li>
</ul>
<a name="getDefaultOutputCoder-org.apache.beam.sdk.values.PInput-org.apache.beam.sdk.values.PCollection-">
<!-- -->
</a><a name="getDefaultOutputCoder-InputT-org.apache.beam.sdk.values.PCollection-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultOutputCoder</h4>
<pre>@Deprecated
public&nbsp;&lt;T&gt;&nbsp;<a href="../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;T&gt;&nbsp;getDefaultOutputCoder(<a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="type parameter in PTransform">InputT</a>&nbsp;input,
<a href="../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values">PCollection</a>&lt;T&gt;&nbsp;output)
throws <a href="../../../../../org/apache/beam/sdk/coders/CannotProvideCoderException.html" title="class in org.apache.beam.sdk.coders">CannotProvideCoderException</a></pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Instead, the PTransform should explicitly call <a href="../../../../../org/apache/beam/sdk/values/PCollection.html#setCoder-org.apache.beam.sdk.coders.Coder-"><code>PCollection.setCoder(org.apache.beam.sdk.coders.Coder&lt;T&gt;)</code></a> on the
returned PCollection.</span></div>
<div class="block">Returns the default <code>Coder</code> to use for the given output of this single-output <code>PTransform</code> when applied to the given input.
<p>By default, always throws.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/beam/sdk/coders/CannotProvideCoderException.html" title="class in org.apache.beam.sdk.coders">CannotProvideCoderException</a></code> - if none can be inferred.</dd>
</dl>
</li>
</ul>
<a name="populateDisplayData-org.apache.beam.sdk.transforms.display.DisplayData.Builder-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>populateDisplayData</h4>
<pre>public&nbsp;void&nbsp;populateDisplayData(<a href="../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Builder.html" title="interface in org.apache.beam.sdk.transforms.display">DisplayData.Builder</a>&nbsp;builder)</pre>
<div class="block">Register display data for the given transform or component.
<p><code>populateDisplayData(DisplayData.Builder)</code> is invoked by Pipeline runners to collect
display data via <a href="../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html#from-org.apache.beam.sdk.transforms.display.HasDisplayData-"><code>DisplayData.from(HasDisplayData)</code></a>. Implementations may call <code>super.populateDisplayData(builder)</code> in order to register display data in the current namespace,
but should otherwise use <code>subcomponent.populateDisplayData(builder)</code> to use the namespace
of the subcomponent.
<p>By default, does not register any display data. Implementors may override this method to
provide their own display data.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/beam/sdk/transforms/display/HasDisplayData.html#populateDisplayData-org.apache.beam.sdk.transforms.display.DisplayData.Builder-">populateDisplayData</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/beam/sdk/transforms/display/HasDisplayData.html" title="interface in org.apache.beam.sdk.transforms.display">HasDisplayData</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>builder</code> - The builder to populate with display data.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/beam/sdk/transforms/display/HasDisplayData.html" title="interface in org.apache.beam.sdk.transforms.display"><code>HasDisplayData</code></a></dd>
</dl>
</li>
</ul>
<a name="compose-org.apache.beam.sdk.transforms.SerializableFunction-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>compose</h4>
<pre><a href="../../../../../org/apache/beam/sdk/annotations/Experimental.html" title="annotation in org.apache.beam.sdk.annotations">@Experimental</a>
public static&nbsp;&lt;InputT extends <a href="../../../../../org/apache/beam/sdk/values/PInput.html" title="interface in org.apache.beam.sdk.values">PInput</a>,OutputT extends <a href="../../../../../org/apache/beam/sdk/values/POutput.html" title="interface in org.apache.beam.sdk.values">POutput</a>&gt;&nbsp;<a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms">PTransform</a>&lt;InputT,OutputT&gt;&nbsp;compose(<a href="../../../../../org/apache/beam/sdk/transforms/SerializableFunction.html" title="interface in org.apache.beam.sdk.transforms">SerializableFunction</a>&lt;InputT,OutputT&gt;&nbsp;fn)</pre>
<div class="block">For a <code>SerializableFunction&lt;InputT, OutputT&gt;</code> <code>fn</code>, returns a <code>PTransform</code>
given by applying <code>fn.apply(v)</code> to the input <code>PCollection&lt;InputT&gt;</code>.
<p>Allows users to define a concise composite transform using a Java 8 lambda expression. For
example:
<pre><code>
PCollection&lt;String&gt; words = wordsAndErrors.apply(
(PCollectionTuple input) -&gt; {
input.get(errorsTag).apply(new WriteErrorOutput());
return input.get(wordsTag);
});
</code></pre></div>
</li>
</ul>
<a name="compose-java.lang.String-org.apache.beam.sdk.transforms.SerializableFunction-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>compose</h4>
<pre><a href="../../../../../org/apache/beam/sdk/annotations/Experimental.html" title="annotation in org.apache.beam.sdk.annotations">@Experimental</a>
public static&nbsp;&lt;InputT extends <a href="../../../../../org/apache/beam/sdk/values/PInput.html" title="interface in org.apache.beam.sdk.values">PInput</a>,OutputT extends <a href="../../../../../org/apache/beam/sdk/values/POutput.html" title="interface in org.apache.beam.sdk.values">POutput</a>&gt;&nbsp;<a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms">PTransform</a>&lt;InputT,OutputT&gt;&nbsp;compose(java.lang.String&nbsp;name,
<a href="../../../../../org/apache/beam/sdk/transforms/SerializableFunction.html" title="interface in org.apache.beam.sdk.transforms">SerializableFunction</a>&lt;InputT,OutputT&gt;&nbsp;fn)</pre>
<div class="block">Like <a href="../../../../../org/apache/beam/sdk/transforms/PTransform.html#compose-org.apache.beam.sdk.transforms.SerializableFunction-"><code>compose(SerializableFunction)</code></a>, but with a custom name.</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/beam/sdk/transforms/ProcessFunction.html" title="interface in org.apache.beam.sdk.transforms"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/beam/sdk/transforms/Regex.html" title="class in org.apache.beam.sdk.transforms"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/beam/sdk/transforms/PTransform.html" target="_top">Frames</a></li>
<li><a href="PTransform.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>