You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by bc...@apache.org on 2016/05/16 19:56:03 UTC

[1/2] incubator-beam git commit: Add labels for SDK display data

Repository: incubator-beam
Updated Branches:
  refs/heads/master 0f2e6f37e -> 638cc2071


Add labels for SDK display data


Project: http://git-wip-us.apache.org/repos/asf/incubator-beam/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-beam/commit/62f05d8b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-beam/tree/62f05d8b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-beam/diff/62f05d8b

Branch: refs/heads/master
Commit: 62f05d8b2513fbe7bb5b2ac181f9550634317792
Parents: 0f2e6f3
Author: Scott Wegner <sw...@google.com>
Authored: Wed May 11 14:17:10 2016 -0700
Committer: bchambers <bc...@google.com>
Committed: Mon May 16 12:44:14 2016 -0700

----------------------------------------------------------------------
 .../DataflowPipelineTranslatorTest.java         |  2 +
 .../java/org/apache/beam/sdk/io/AvroIO.java     | 28 +++++++++----
 .../java/org/apache/beam/sdk/io/BigQueryIO.java | 43 +++++++++++++-------
 .../sdk/io/BoundedReadFromUnboundedSource.java  |  9 ++--
 .../apache/beam/sdk/io/CompressedSource.java    |  9 ++--
 .../org/apache/beam/sdk/io/CountingInput.java   | 12 ++++--
 .../org/apache/beam/sdk/io/DatastoreIO.java     | 18 +++++---
 .../org/apache/beam/sdk/io/FileBasedSink.java   |  3 +-
 .../org/apache/beam/sdk/io/FileBasedSource.java |  3 +-
 .../apache/beam/sdk/io/OffsetBasedSource.java   |  9 ++--
 .../java/org/apache/beam/sdk/io/PubsubIO.java   | 42 +++++++++++--------
 .../main/java/org/apache/beam/sdk/io/Read.java  |  6 ++-
 .../java/org/apache/beam/sdk/io/TextIO.java     | 25 ++++++++----
 .../main/java/org/apache/beam/sdk/io/Write.java |  3 +-
 .../java/org/apache/beam/sdk/io/XmlSink.java    |  6 ++-
 .../java/org/apache/beam/sdk/io/XmlSource.java  |  9 ++--
 .../sdk/transforms/ApproximateQuantiles.java    |  6 ++-
 .../beam/sdk/transforms/ApproximateUnique.java  |  6 ++-
 .../org/apache/beam/sdk/transforms/Combine.java | 15 ++++---
 .../apache/beam/sdk/transforms/CombineFns.java  |  3 +-
 .../org/apache/beam/sdk/transforms/Filter.java  |  3 +-
 .../apache/beam/sdk/transforms/GroupByKey.java  |  3 +-
 .../transforms/IntraBundleParallelization.java  |  6 ++-
 .../apache/beam/sdk/transforms/MapElements.java |  3 +-
 .../org/apache/beam/sdk/transforms/Max.java     |  3 +-
 .../org/apache/beam/sdk/transforms/Min.java     |  3 +-
 .../org/apache/beam/sdk/transforms/ParDo.java   |  3 +-
 .../apache/beam/sdk/transforms/Partition.java   |  6 ++-
 .../org/apache/beam/sdk/transforms/Sample.java  |  6 ++-
 .../org/apache/beam/sdk/transforms/Top.java     |  6 ++-
 .../transforms/windowing/CalendarWindows.java   | 18 +++++---
 .../sdk/transforms/windowing/FixedWindows.java  |  6 ++-
 .../beam/sdk/transforms/windowing/Sessions.java |  3 +-
 .../transforms/windowing/SlidingWindows.java    |  9 ++--
 .../beam/sdk/transforms/windowing/Window.java   | 18 +++++---
 .../beam/sdk/io/gcp/bigtable/BigtableIO.java    | 15 ++++---
 36 files changed, 243 insertions(+), 125 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/runners/dataflow/DataflowPipelineTranslatorTest.java
----------------------------------------------------------------------
diff --git a/runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/runners/dataflow/DataflowPipelineTranslatorTest.java b/runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/runners/dataflow/DataflowPipelineTranslatorTest.java
index ed7e67d..58c6f75 100644
--- a/runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/runners/dataflow/DataflowPipelineTranslatorTest.java
+++ b/runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/runners/dataflow/DataflowPipelineTranslatorTest.java
@@ -936,6 +936,7 @@ public class DataflowPipelineTranslatorTest implements Serializable {
             .build(),
         ImmutableMap.<String, Object>builder()
             .put("key", "fn")
+            .put("label", "Transform Function")
             .put("type", "JAVA_CLASS")
             .put("value", fn1.getClass().getName())
             .put("shortValue", fn1.getClass().getSimpleName())
@@ -955,6 +956,7 @@ public class DataflowPipelineTranslatorTest implements Serializable {
     ImmutableSet<ImmutableMap<String, Object>> expectedFn2DisplayData = ImmutableSet.of(
         ImmutableMap.<String, Object>builder()
             .put("key", "fn")
+            .put("label", "Transform Function")
             .put("type", "JAVA_CLASS")
             .put("value", fn2.getClass().getName())
             .put("shortValue", fn2.getClass().getSimpleName())

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/AvroIO.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/AvroIO.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/AvroIO.java
index 6b9f010..4b40c01 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/AvroIO.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/AvroIO.java
@@ -331,8 +331,10 @@ public class AvroIO {
       public void populateDisplayData(DisplayData.Builder builder) {
         super.populateDisplayData(builder);
         builder
-          .addIfNotNull(DisplayData.item("filePattern", filepattern))
-          .addIfNotDefault(DisplayData.item("validation", validate), true);
+          .addIfNotNull(DisplayData.item("filePattern", filepattern)
+            .withLabel("Input File Pattern"))
+          .addIfNotDefault(DisplayData.item("validation", validate)
+            .withLabel("Validation Enabled"), true);
       }
 
       @Override
@@ -694,14 +696,22 @@ public class AvroIO {
       public void populateDisplayData(DisplayData.Builder builder) {
         super.populateDisplayData(builder);
         builder
-            .add(DisplayData.item("schema", type))
-            .addIfNotNull(DisplayData.item("filePrefix", filenamePrefix))
-            .addIfNotDefault(
-                DisplayData.item("shardNameTemplate", shardTemplate),
+            .add(DisplayData.item("schema", type)
+              .withLabel("Record Schema"))
+            .addIfNotNull(DisplayData.item("filePrefix", filenamePrefix)
+              .withLabel("Output File Prefix"))
+            .addIfNotDefault(DisplayData.item("shardNameTemplate", shardTemplate)
+                .withLabel("Output Shard Name Template"),
                 DEFAULT_SHARD_TEMPLATE)
-            .addIfNotDefault(DisplayData.item("fileSuffix", filenameSuffix), "")
-            .addIfNotDefault(DisplayData.item("numShards", numShards), 0)
-            .addIfNotDefault(DisplayData.item("validation", validate), true);
+            .addIfNotDefault(DisplayData.item("fileSuffix", filenameSuffix)
+                .withLabel("Output File Suffix"),
+                "")
+            .addIfNotDefault(DisplayData.item("numShards", numShards)
+                .withLabel("Maximum Output Shards"),
+                0)
+            .addIfNotDefault(DisplayData.item("validation", validate)
+                .withLabel("Validation Enabled"),
+                true);
       }
 
       /**

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/BigQueryIO.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/BigQueryIO.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/BigQueryIO.java
index 3f22648..f8a05e9 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/BigQueryIO.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/BigQueryIO.java
@@ -631,13 +631,18 @@ public class BigQueryIO {
         TableReference table = getTable();
 
         if (table != null) {
-          builder.add(DisplayData.item("table", toTableSpec(table)));
+          builder.add(DisplayData.item("table", toTableSpec(table))
+            .withLabel("Table"));
         }
 
         builder
-            .addIfNotNull(DisplayData.item("query", query))
-            .addIfNotNull(DisplayData.item("flattenResults", flattenResults))
-            .addIfNotDefault(DisplayData.item("validation", validate), true);
+            .addIfNotNull(DisplayData.item("query", query)
+              .withLabel("Query"))
+            .addIfNotNull(DisplayData.item("flattenResults", flattenResults)
+              .withLabel("Flatten Query Results"))
+            .addIfNotDefault(DisplayData.item("validation", validate)
+              .withLabel("Validation Enabled"),
+                true);
       }
 
       /**
@@ -1753,17 +1758,23 @@ public class BigQueryIO {
         super.populateDisplayData(builder);
 
         builder
-            .addIfNotNull(DisplayData.item("table", jsonTableRef))
-            .addIfNotNull(DisplayData.item("schema", jsonSchema));
+            .addIfNotNull(DisplayData.item("table", jsonTableRef)
+              .withLabel("Table Reference"))
+            .addIfNotNull(DisplayData.item("schema", jsonSchema)
+              .withLabel("Table Schema"));
 
         if (tableRefFunction != null) {
-          builder.add(DisplayData.item("tableFn", tableRefFunction.getClass()));
+          builder.add(DisplayData.item("tableFn", tableRefFunction.getClass())
+            .withLabel("Table Reference Function"));
         }
 
         builder
-            .add(DisplayData.item("createDisposition", createDisposition.toString()))
-            .add(DisplayData.item("writeDisposition", writeDisposition.toString()))
-            .addIfNotDefault(DisplayData.item("validation", validate), true);
+            .add(DisplayData.item("createDisposition", createDisposition.toString())
+              .withLabel("Table CreateDisposition"))
+            .add(DisplayData.item("writeDisposition", writeDisposition.toString())
+              .withLabel("Table WriteDisposition"))
+            .addIfNotDefault(DisplayData.item("validation", validate)
+              .withLabel("Validation Enabled"), true);
       }
 
       /** Returns the create disposition. */
@@ -1855,8 +1866,10 @@ public class BigQueryIO {
       super.populateDisplayData(builder);
 
       builder
-          .addIfNotNull(DisplayData.item("schema", jsonSchema))
-          .addIfNotNull(DisplayData.item("tableSpec", jsonTable));
+          .addIfNotNull(DisplayData.item("schema", jsonSchema)
+            .withLabel("Table Schema"))
+          .addIfNotNull(DisplayData.item("tableSpec", jsonTable)
+            .withLabel("Table Specification"));
     }
 
     private static class BigQueryWriteOperation extends FileBasedWriteOperation<TableRow> {
@@ -2096,7 +2109,8 @@ public class BigQueryIO {
     public void populateDisplayData(DisplayData.Builder builder) {
       super.populateDisplayData(builder);
 
-      builder.addIfNotNull(DisplayData.item("schema", jsonTableSchema));
+      builder.addIfNotNull(DisplayData.item("schema", jsonTableSchema)
+        .withLabel("Table Schema"));
     }
 
     public TableReference getOrCreateTable(BigQueryOptions options, String tableSpec)
@@ -2312,7 +2326,8 @@ public class BigQueryIO {
 
       builder.addIfNotNull(DisplayData.item("tableSpec", tableSpec));
       if (tableRefFunction != null) {
-        builder.add(DisplayData.item("tableFn", tableRefFunction.getClass()));
+        builder.add(DisplayData.item("tableFn", tableRefFunction.getClass())
+          .withLabel("Table Reference Function"));
       }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/BoundedReadFromUnboundedSource.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/BoundedReadFromUnboundedSource.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/BoundedReadFromUnboundedSource.java
index cf4f02d..49b2ad4 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/BoundedReadFromUnboundedSource.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/BoundedReadFromUnboundedSource.java
@@ -113,9 +113,12 @@ class BoundedReadFromUnboundedSource<T> extends PTransform<PInput, PCollection<T
   public void populateDisplayData(DisplayData.Builder builder) {
     // We explicitly do not register base-class data, instead we use the delegate inner source.
     builder
-        .add(DisplayData.item("source", source.getClass()))
-        .addIfNotDefault(DisplayData.item("maxRecords", maxNumRecords), Long.MAX_VALUE)
-        .addIfNotNull(DisplayData.item("maxReadTime", maxReadTime))
+        .add(DisplayData.item("source", source.getClass())
+          .withLabel("Read Source"))
+        .addIfNotDefault(DisplayData.item("maxRecords", maxNumRecords)
+          .withLabel("Maximum Read Records"), Long.MAX_VALUE)
+        .addIfNotNull(DisplayData.item("maxReadTime", maxReadTime)
+          .withLabel("Maximum Read Time"))
         .include(source);
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/CompressedSource.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/CompressedSource.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/CompressedSource.java
index 370c1e2..5cb0684 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/CompressedSource.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/CompressedSource.java
@@ -326,14 +326,17 @@ public class CompressedSource<T> extends FileBasedSource<T> {
     // We explicitly do not register base-class data, instead we use the delegate inner source.
     builder
         .include(sourceDelegate)
-        .add(DisplayData.item("source", sourceDelegate.getClass()));
+        .add(DisplayData.item("source", sourceDelegate.getClass())
+          .withLabel("Read Source"));
 
     if (channelFactory instanceof Enum) {
       // GZIP and BZIP are implemented as enums; Enum classes are anonymous, so use the .name()
       // value instead
-      builder.add(DisplayData.item("compressionMode", ((Enum) channelFactory).name()));
+      builder.add(DisplayData.item("compressionMode", ((Enum) channelFactory).name())
+        .withLabel("Compression Mode"));
     } else {
-      builder.add(DisplayData.item("compressionMode", channelFactory.getClass()));
+      builder.add(DisplayData.item("compressionMode", channelFactory.getClass())
+        .withLabel("Compression Mode"));
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/CountingInput.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/CountingInput.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/CountingInput.java
index 5a53e4d..a21bc24 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/CountingInput.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/CountingInput.java
@@ -119,7 +119,8 @@ public class CountingInput {
     @Override
     public void populateDisplayData(DisplayData.Builder builder) {
       super.populateDisplayData(builder);
-      builder.add(DisplayData.item("upTo", numElements));
+      builder.add(DisplayData.item("upTo", numElements)
+        .withLabel("Count Up To"));
     }
   }
 
@@ -233,14 +234,17 @@ public class CountingInput {
     public void populateDisplayData(DisplayData.Builder builder) {
       super.populateDisplayData(builder);
 
-      builder.add(DisplayData.item("timestampFn", timestampFn.getClass()));
+      builder.add(DisplayData.item("timestampFn", timestampFn.getClass())
+        .withLabel("Timestamp Function"));
 
       if (maxReadTime.isPresent()) {
-        builder.add(DisplayData.item("maxReadTime", maxReadTime.get()));
+        builder.add(DisplayData.item("maxReadTime", maxReadTime.get())
+          .withLabel("Maximum Read Time"));
       }
 
       if (maxNumRecords.isPresent()) {
-        builder.add(DisplayData.item("maxRecords", maxNumRecords.get()));
+        builder.add(DisplayData.item("maxRecords", maxNumRecords.get())
+          .withLabel("Maximum Read Records"));
       }
     }
   }

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/DatastoreIO.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/DatastoreIO.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/DatastoreIO.java
index 81c3a39..cc8e923 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/DatastoreIO.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/DatastoreIO.java
@@ -391,12 +391,16 @@ public class DatastoreIO {
     public void populateDisplayData(DisplayData.Builder builder) {
       super.populateDisplayData(builder);
       builder
-          .addIfNotDefault(DisplayData.item("host", host), DEFAULT_HOST)
-          .addIfNotNull(DisplayData.item("dataset", datasetId))
-          .addIfNotNull(DisplayData.item("namespace", namespace));
+          .addIfNotDefault(DisplayData.item("host", host)
+            .withLabel("Datastore Service"), DEFAULT_HOST)
+          .addIfNotNull(DisplayData.item("dataset", datasetId)
+            .withLabel("Input Dataset"))
+          .addIfNotNull(DisplayData.item("namespace", namespace)
+            .withLabel("App Engine Namespace"));
 
       if (query != null) {
-        builder.add(DisplayData.item("query", query.toString()));
+        builder.add(DisplayData.item("query", query.toString())
+          .withLabel("Query"));
       }
     }
 
@@ -606,8 +610,10 @@ public class DatastoreIO {
     public void populateDisplayData(DisplayData.Builder builder) {
       super.populateDisplayData(builder);
       builder
-          .addIfNotDefault(DisplayData.item("host", host), DEFAULT_HOST)
-          .addIfNotNull(DisplayData.item("dataset", datasetId));
+          .addIfNotDefault(DisplayData.item("host", host)
+            .withLabel("Datastore Service"), DEFAULT_HOST)
+          .addIfNotNull(DisplayData.item("dataset", datasetId)
+            .withLabel("Output Dataset"));
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/FileBasedSink.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/FileBasedSink.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/FileBasedSink.java
index 23ccdd0..9048380 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/FileBasedSink.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/FileBasedSink.java
@@ -129,7 +129,8 @@ public abstract class FileBasedSink<T> extends Sink<T> {
 
     String fileNamePattern = String.format("%s%s%s",
         baseOutputFilename, fileNamingTemplate, getFileExtension(extension));
-    builder.add(DisplayData.item("fileNamePattern", fileNamePattern));
+    builder.add(DisplayData.item("fileNamePattern", fileNamePattern)
+      .withLabel("File Name Pattern"));
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/FileBasedSource.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/FileBasedSource.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/FileBasedSource.java
index 954877f..e42c92c 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/FileBasedSource.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/FileBasedSource.java
@@ -277,7 +277,8 @@ public abstract class FileBasedSource<T> extends OffsetBasedSource<T> {
   @Override
   public void populateDisplayData(DisplayData.Builder builder) {
     super.populateDisplayData(builder);
-    builder.add(DisplayData.item("filePattern", getFileOrPatternSpec()));
+    builder.add(DisplayData.item("filePattern", getFileOrPatternSpec())
+      .withLabel("File Pattern"));
   }
 
   private ListenableFuture<List<? extends FileBasedSource<T>>> createFutureForFileSplit(

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/OffsetBasedSource.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/OffsetBasedSource.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/OffsetBasedSource.java
index 1c033f8..9ee89a2 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/OffsetBasedSource.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/OffsetBasedSource.java
@@ -207,9 +207,12 @@ public abstract class OffsetBasedSource<T> extends BoundedSource<T> {
   public void populateDisplayData(DisplayData.Builder builder) {
     super.populateDisplayData(builder);
     builder
-        .addIfNotDefault(DisplayData.item("minBundleSize", minBundleSize), 1L)
-        .addIfNotDefault(DisplayData.item("startOffset", startOffset), 0L)
-        .addIfNotDefault(DisplayData.item("endOffset", endOffset), Long.MAX_VALUE);
+        .addIfNotDefault(DisplayData.item("minBundleSize", minBundleSize)
+            .withLabel("Minimum Bundle Size"), 1L)
+        .addIfNotDefault(DisplayData.item("startOffset", startOffset)
+            .withLabel("Start Read Offset"), 0L)
+        .addIfNotDefault(DisplayData.item("endOffset", endOffset)
+            .withLabel("End Read Offset"), Long.MAX_VALUE);
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/PubsubIO.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/PubsubIO.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/PubsubIO.java
index 6a14477..78fec85 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/PubsubIO.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/PubsubIO.java
@@ -135,6 +135,23 @@ public class PubsubIO {
   }
 
   /**
+   * Populate common {@link DisplayData} between Pubsub source and sink.
+   */
+  private static void populateCommonDisplayData(DisplayData.Builder builder,
+      String timestampLabel, String idLabel, PubsubTopic topic) {
+    builder
+        .addIfNotNull(DisplayData.item("timestampLabel", timestampLabel)
+            .withLabel("Timestamp Label Attribute"))
+        .addIfNotNull(DisplayData.item("idLabel", idLabel)
+            .withLabel("ID Label Attribute"));
+
+    if (topic != null) {
+      builder.add(DisplayData.item("topic", topic.asPath())
+          .withLabel("Pubsub Topic"));
+    }
+  }
+
+  /**
    * Class representing a Cloud Pub/Sub Subscription.
    */
   public static class PubsubSubscription implements Serializable {
@@ -641,19 +658,17 @@ public class PubsubIO {
       @Override
       public void populateDisplayData(DisplayData.Builder builder) {
         super.populateDisplayData(builder);
+        populateCommonDisplayData(builder, timestampLabel, idLabel, topic);
 
         builder
-            .addIfNotNull(DisplayData.item("timestampLabel", timestampLabel))
-            .addIfNotNull(DisplayData.item("idLabel", idLabel))
-            .addIfNotNull(DisplayData.item("maxReadTime", maxReadTime))
-            .addIfNotDefault(DisplayData.item("maxNumRecords", maxNumRecords), 0);
-
-        if (topic != null) {
-          builder.add(DisplayData.item("topic", topic.asPath()));
-        }
+            .addIfNotNull(DisplayData.item("maxReadTime", maxReadTime)
+              .withLabel("Maximum Read Time"))
+            .addIfNotDefault(DisplayData.item("maxNumRecords", maxNumRecords)
+              .withLabel("Maximum Read Records"), 0);
 
         if (subscription != null) {
-          builder.add(DisplayData.item("subscription", subscription.asPath()));
+          builder.add(DisplayData.item("subscription", subscription.asPath())
+            .withLabel("Pubsub Subscription"));
         }
       }
 
@@ -953,14 +968,7 @@ public class PubsubIO {
       @Override
       public void populateDisplayData(DisplayData.Builder builder) {
         super.populateDisplayData(builder);
-
-        builder
-            .addIfNotNull(DisplayData.item("timestampLabel", timestampLabel))
-            .addIfNotNull(DisplayData.item("idLabel", idLabel));
-
-        if (topic != null) {
-          builder.add(DisplayData.item("topic", topic.asPath()));
-        }
+        populateCommonDisplayData(builder, timestampLabel, idLabel, topic);
       }
 
       @Override

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/Read.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/Read.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/Read.java
index 965b14f..fb40063 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/Read.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/Read.java
@@ -149,7 +149,8 @@ public class Read {
     public void populateDisplayData(DisplayData.Builder builder) {
       super.populateDisplayData(builder);
       builder
-          .add(DisplayData.item("source", source.getClass()))
+          .add(DisplayData.item("source", source.getClass())
+            .withLabel("Read Source"))
           .include(source);
     }
 
@@ -264,7 +265,8 @@ public class Read {
     public void populateDisplayData(DisplayData.Builder builder) {
       super.populateDisplayData(builder);
       builder
-          .add(DisplayData.item("source", source.getClass()))
+          .add(DisplayData.item("source", source.getClass())
+            .withLabel("Read Source"))
           .include(source);
     }
   }

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/TextIO.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/TextIO.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/TextIO.java
index 7f69c0a..79eeb08 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/TextIO.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/TextIO.java
@@ -344,9 +344,12 @@ public class TextIO {
         super.populateDisplayData(builder);
 
         builder
-            .add(DisplayData.item("compressionType", compressionType.toString()))
-            .addIfNotDefault(DisplayData.item("validation", validate), true)
-            .addIfNotNull(DisplayData.item("filePattern", filepattern));
+            .add(DisplayData.item("compressionType", compressionType.toString())
+              .withLabel("Compression Type"))
+            .addIfNotDefault(DisplayData.item("validation", validate)
+              .withLabel("Validation Enabled"), true)
+            .addIfNotNull(DisplayData.item("filePattern", filepattern)
+              .withLabel("File Pattern"));
       }
 
       @Override
@@ -649,13 +652,17 @@ public class TextIO {
         super.populateDisplayData(builder);
 
         builder
-            .addIfNotNull(DisplayData.item("filePrefix", filenamePrefix))
-            .addIfNotDefault(DisplayData.item("fileSuffix", filenameSuffix), "")
-            .addIfNotDefault(
-                DisplayData.item("shardNameTemplate", shardTemplate),
+            .addIfNotNull(DisplayData.item("filePrefix", filenamePrefix)
+              .withLabel("Output File Prefix"))
+            .addIfNotDefault(DisplayData.item("fileSuffix", filenameSuffix)
+              .withLabel("Output Fix Suffix"), "")
+            .addIfNotDefault(DisplayData.item("shardNameTemplate", shardTemplate)
+              .withLabel("Output Shard Name Template"),
                 DEFAULT_SHARD_TEMPLATE)
-            .addIfNotDefault(DisplayData.item("validation", validate), true)
-            .addIfNotDefault(DisplayData.item("numShards", numShards), 0);
+            .addIfNotDefault(DisplayData.item("validation", validate)
+              .withLabel("Validation Enabled"), true)
+            .addIfNotDefault(DisplayData.item("numShards", numShards)
+              .withLabel("Maximum Output Shards"), 0);
       }
 
       /**

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/Write.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/Write.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/Write.java
index 0f2dbf8..66fef84 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/Write.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/Write.java
@@ -86,7 +86,8 @@ public class Write {
     public void populateDisplayData(DisplayData.Builder builder) {
       super.populateDisplayData(builder);
       builder
-          .add(DisplayData.item("sink", sink.getClass()))
+          .add(DisplayData.item("sink", sink.getClass())
+            .withLabel("Write Sink"))
           .include(sink);
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/XmlSink.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/XmlSink.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/XmlSink.java
index eb7ba38..bbe68d9 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/XmlSink.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/XmlSink.java
@@ -227,8 +227,10 @@ public class XmlSink {
     public void populateDisplayData(DisplayData.Builder builder) {
       super.populateDisplayData(builder);
       builder
-          .addIfNotNull(DisplayData.item("rootElement", rootElementName))
-          .addIfNotNull(DisplayData.item("recordClass", classToBind));
+          .addIfNotNull(DisplayData.item("rootElement", rootElementName)
+            .withLabel("XML Root Element"))
+          .addIfNotNull(DisplayData.item("recordClass", classToBind)
+            .withLabel("XML Record Class"));
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/XmlSource.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/XmlSource.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/XmlSource.java
index 0a418c8..56651e8 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/XmlSource.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/XmlSource.java
@@ -222,9 +222,12 @@ public class XmlSource<T> extends FileBasedSource<T> {
   public void populateDisplayData(DisplayData.Builder builder) {
     super.populateDisplayData(builder);
     builder
-        .addIfNotNull(DisplayData.item("rootElement", rootElement))
-        .addIfNotNull(DisplayData.item("recordElement", recordElement))
-        .addIfNotNull(DisplayData.item("recordClass", recordClass));
+        .addIfNotNull(DisplayData.item("rootElement", rootElement)
+          .withLabel("XML Root Element"))
+        .addIfNotNull(DisplayData.item("recordElement", recordElement)
+          .withLabel("XML Record Element"))
+        .addIfNotNull(DisplayData.item("recordClass", recordClass)
+          .withLabel("XML Record Class"));
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/ApproximateQuantiles.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/ApproximateQuantiles.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/ApproximateQuantiles.java
index 4eb06d2..b056830 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/ApproximateQuantiles.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/ApproximateQuantiles.java
@@ -365,8 +365,10 @@ public class ApproximateQuantiles {
     public void populateDisplayData(DisplayData.Builder builder) {
       super.populateDisplayData(builder);
       builder
-          .add(DisplayData.item("numQuantiles", numQuantiles))
-          .add(DisplayData.item("comparer", compareFn.getClass()));
+          .add(DisplayData.item("numQuantiles", numQuantiles)
+            .withLabel("Quantile Count"))
+          .add(DisplayData.item("comparer", compareFn.getClass())
+            .withLabel("Record Comparer"));
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/ApproximateUnique.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/ApproximateUnique.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/ApproximateUnique.java
index e4559d4..2fa2427 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/ApproximateUnique.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/ApproximateUnique.java
@@ -461,7 +461,9 @@ public class ApproximateUnique {
   private static void populateDisplayData(
       DisplayData.Builder builder, long sampleSize, Double maxEstimationError) {
     builder
-        .add(DisplayData.item("sampleSize", sampleSize))
-        .addIfNotNull(DisplayData.item("maximumEstimationError", maxEstimationError));
+        .add(DisplayData.item("sampleSize", sampleSize)
+          .withLabel("Sample Size"))
+        .addIfNotNull(DisplayData.item("maximumEstimationError", maxEstimationError)
+          .withLabel("Maximum Estimation Error"));
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Combine.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Combine.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Combine.java
index ffbaafa..190c413 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Combine.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Combine.java
@@ -127,7 +127,8 @@ public class Combine {
   }
 
   private static <T> DisplayData.Item<? extends Class<?>> displayDataForFn(T fn) {
-    return DisplayData.item("combineFn", fn.getClass());
+    return DisplayData.item("combineFn", fn.getClass())
+        .withLabel("Combiner");
   }
 
   private static <InputT, OutputT> Globally<InputT, OutputT> globally(
@@ -1428,8 +1429,10 @@ public class Combine {
   private static void populateGlobalDisplayData(
       DisplayData.Builder builder, int fanout, boolean insertDefault) {
     builder
-        .addIfNotDefault(DisplayData.item("fanout", fanout), 0)
-        .add(DisplayData.item("emitDefaultOnEmptyInput", insertDefault));
+        .addIfNotDefault(DisplayData.item("fanout", fanout)
+            .withLabel("Key Fanout Size"), 0)
+        .add(DisplayData.item("emitDefaultOnEmptyInput", insertDefault)
+            .withLabel("Emit Default On Empty Input"));
   }
 
   /**
@@ -1604,7 +1607,8 @@ public class Combine {
     @Override
     public void populateDisplayData(DisplayData.Builder builder) {
       super.populateDisplayData(builder);
-      builder.add(DisplayData.item("combineFn", combiner.getClass()));
+      builder.add(DisplayData.item("combineFn", combiner.getClass())
+        .withLabel("Combiner"));
     }
 
     private List<V> mergeToSingleton(Iterable<V> values) {
@@ -2095,7 +2099,8 @@ public class Combine {
       super.populateDisplayData(builder);
 
       Combine.populateDisplayData(builder, fn, fnDisplayData);
-      builder.add(DisplayData.item("fanoutFn", hotKeyFanout.getClass()));
+      builder.add(DisplayData.item("fanoutFn", hotKeyFanout.getClass())
+        .withLabel("Fanout Function"));
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/CombineFns.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/CombineFns.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/CombineFns.java
index 1bf305f..d0a8909 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/CombineFns.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/CombineFns.java
@@ -1053,7 +1053,8 @@ public class CombineFns {
 
     for (int i = 0; i < combineFns.size(); i++) {
       HasDisplayData combineFn = combineFns.get(i);
-      builder.add(DisplayData.item("combineFn" + (i + 1), combineFn.getClass()));
+      builder.add(DisplayData.item("combineFn" + (i + 1), combineFn.getClass())
+        .withLabel("Combine Function"));
       combineFnMap.put(combineFn.getClass(), combineFn);
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Filter.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Filter.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Filter.java
index da692b2..57796b8 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Filter.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Filter.java
@@ -261,6 +261,7 @@ public class Filter<T> extends PTransform<PCollection<T>, PCollection<T>> {
 
   private static void populateDisplayData(
       DisplayData.Builder builder, String predicateDescription) {
-    builder.add(DisplayData.item("predicate", predicateDescription));
+    builder.add(DisplayData.item("predicate", predicateDescription)
+      .withLabel("Filter Predicate"));
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/GroupByKey.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/GroupByKey.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/GroupByKey.java
index 21e6ecf..8ad57d2 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/GroupByKey.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/GroupByKey.java
@@ -279,7 +279,8 @@ public class GroupByKey<K, V>
   public void populateDisplayData(DisplayData.Builder builder) {
     super.populateDisplayData(builder);
     if (fewKeys) {
-      builder.add(DisplayData.item("fewKeys", true));
+      builder.add(DisplayData.item("fewKeys", true)
+        .withLabel("Has Few Keys"));
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/IntraBundleParallelization.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/IntraBundleParallelization.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/IntraBundleParallelization.java
index 62c09c2..3cb8415 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/IntraBundleParallelization.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/IntraBundleParallelization.java
@@ -178,8 +178,10 @@ public class IntraBundleParallelization {
     public void populateDisplayData(DisplayData.Builder builder) {
       super.populateDisplayData(builder);
       builder
-          .add(DisplayData.item("maxParallelism", maxParallelism))
-          .add(DisplayData.item("fn", doFn.getClass()))
+          .add(DisplayData.item("maxParallelism", maxParallelism)
+            .withLabel("Maximum Parallelism"))
+          .add(DisplayData.item("fn", doFn.getClass())
+            .withLabel("Function"))
           .include(doFn);
     }
   }

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/MapElements.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/MapElements.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/MapElements.java
index 29d1dde..d64bad1 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/MapElements.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/MapElements.java
@@ -120,6 +120,7 @@ extends PTransform<PCollection<InputT>, PCollection<OutputT>> {
   @Override
   public void populateDisplayData(DisplayData.Builder builder) {
     super.populateDisplayData(builder);
-    builder.add(DisplayData.item("mapFn", fn.getClass()));
+    builder.add(DisplayData.item("mapFn", fn.getClass())
+      .withLabel("Map Function"));
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Max.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Max.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Max.java
index 01a190f..c05bd17 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Max.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Max.java
@@ -209,7 +209,8 @@ public class Max {
     @Override
     public void populateDisplayData(DisplayData.Builder builder) {
       super.populateDisplayData(builder);
-      builder.add(DisplayData.item("comparer", comparator.getClass()));
+      builder.add(DisplayData.item("comparer", comparator.getClass())
+        .withLabel("Record Comparer"));
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Min.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Min.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Min.java
index f20d48b..7a6a8a2 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Min.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Min.java
@@ -209,7 +209,8 @@ public class Min {
     @Override
     public void populateDisplayData(DisplayData.Builder builder) {
       super.populateDisplayData(builder);
-      builder.add(DisplayData.item("comparer", comparator.getClass()));
+      builder.add(DisplayData.item("comparer", comparator.getClass())
+        .withLabel("Record Comparer"));
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/ParDo.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/ParDo.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/ParDo.java
index 88945c4..834f60d 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/ParDo.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/ParDo.java
@@ -1266,7 +1266,8 @@ public class ParDo {
       DisplayData.Builder builder, DoFn<?, ?> fn, Class<?> fnClass) {
     builder
         .include(fn)
-        .add(DisplayData.item("fn", fnClass));
+        .add(DisplayData.item("fn", fnClass)
+          .withLabel("Transform Function"));
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Partition.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Partition.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Partition.java
index 44ba2f3..c5aa82c 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Partition.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Partition.java
@@ -182,8 +182,10 @@ public class Partition<T> extends PTransform<PCollection<T>, PCollectionList<T>>
     public void populateDisplayData(DisplayData.Builder builder) {
       super.populateDisplayData(builder);
       builder
-          .add(DisplayData.item("numPartitions", numPartitions))
-          .add(DisplayData.item("partitionFn", partitionFn.getClass()));
+          .add(DisplayData.item("numPartitions", numPartitions)
+            .withLabel("Partition Count"))
+          .add(DisplayData.item("partitionFn", partitionFn.getClass())
+            .withLabel("Partition Function"));
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Sample.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Sample.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Sample.java
index 58188de..1d98668 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Sample.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Sample.java
@@ -158,7 +158,8 @@ public class Sample {
     @Override
     public void populateDisplayData(DisplayData.Builder builder) {
       super.populateDisplayData(builder);
-      builder.add(DisplayData.item("sampleSize", limit));
+      builder.add(DisplayData.item("sampleSize", limit)
+        .withLabel("Sample Size"));
     }
   }
 
@@ -258,7 +259,8 @@ public class Sample {
     @Override
     public void populateDisplayData(DisplayData.Builder builder) {
       super.populateDisplayData(builder);
-      builder.add(DisplayData.item("sampleSize", sampleSize));
+      builder.add(DisplayData.item("sampleSize", sampleSize)
+        .withLabel("Sample Size"));
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Top.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Top.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Top.java
index 71af081..257f77b 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Top.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Top.java
@@ -397,8 +397,10 @@ new TopCombineFn<>(count, new Largest<V>()).<K>asKeyedFn())
     public void populateDisplayData(DisplayData.Builder builder) {
       super.populateDisplayData(builder);
       builder
-          .add(DisplayData.item("count", count))
-          .add(DisplayData.item("comparer", compareFn.getClass()));
+          .add(DisplayData.item("count", count)
+            .withLabel("Top Count"))
+          .add(DisplayData.item("comparer", compareFn.getClass())
+            .withLabel("Record Comparer"));
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/CalendarWindows.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/CalendarWindows.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/CalendarWindows.java
index 490fbd1..9653ae8 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/CalendarWindows.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/CalendarWindows.java
@@ -150,9 +150,11 @@ public class CalendarWindows {
       super.populateDisplayData(builder);
 
       builder
-          .add(DisplayData.item("numDays", number))
+          .add(DisplayData.item("numDays", number)
+            .withLabel("Windows Days"))
           .addIfNotDefault(
-              DisplayData.item("startDate", new DateTime(startDate, timeZone).toInstant()),
+              DisplayData.item("startDate", new DateTime(startDate, timeZone).toInstant())
+                .withLabel("Window Start Date"),
               new DateTime(DEFAULT_START_DATE, DateTimeZone.UTC).toInstant());
     }
 
@@ -248,9 +250,11 @@ public class CalendarWindows {
       super.populateDisplayData(builder);
 
       builder
-          .add(DisplayData.item("numMonths", number))
+          .add(DisplayData.item("numMonths", number)
+            .withLabel("Window Months"))
           .addIfNotDefault(
-            DisplayData.item("startDate", new DateTime(startDate, timeZone).toInstant()),
+            DisplayData.item("startDate", new DateTime(startDate, timeZone).toInstant())
+              .withLabel("Window Start Date"),
             new DateTime(DEFAULT_START_DATE, DateTimeZone.UTC).toInstant());
     }
 
@@ -355,9 +359,11 @@ public class CalendarWindows {
       super.populateDisplayData(builder);
 
       builder
-          .add(DisplayData.item("numYears", number))
+          .add(DisplayData.item("numYears", number)
+            .withLabel("Window Years"))
           .addIfNotDefault(
-              DisplayData.item("startDate", new DateTime(startDate, timeZone).toInstant()),
+              DisplayData.item("startDate", new DateTime(startDate, timeZone).toInstant())
+                .withLabel("Window Start Date"),
               new DateTime(DEFAULT_START_DATE, DateTimeZone.UTC).toInstant());
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/FixedWindows.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/FixedWindows.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/FixedWindows.java
index 322259c..1e439ff 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/FixedWindows.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/FixedWindows.java
@@ -87,8 +87,10 @@ public class FixedWindows extends PartitioningWindowFn<Object, IntervalWindow> {
   public void populateDisplayData(DisplayData.Builder builder) {
     super.populateDisplayData(builder);
     builder
-        .add(DisplayData.item("size", size))
-        .addIfNotDefault(DisplayData.item("offset", offset), Duration.ZERO);
+        .add(DisplayData.item("size", size)
+          .withLabel("Window Duration"))
+        .addIfNotDefault(DisplayData.item("offset", offset)
+          .withLabel("Window Start Offset"), Duration.ZERO);
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/Sessions.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/Sessions.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/Sessions.java
index 788566e..875db12 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/Sessions.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/Sessions.java
@@ -93,7 +93,8 @@ public class Sessions extends WindowFn<Object, IntervalWindow> {
   @Override
   public void populateDisplayData(DisplayData.Builder builder) {
     super.populateDisplayData(builder);
-    builder.add(DisplayData.item("gapDuration", gapDuration));
+    builder.add(DisplayData.item("gapDuration", gapDuration)
+      .withLabel("Session Gap Duration"));
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/SlidingWindows.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/SlidingWindows.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/SlidingWindows.java
index 62c2738..99367f5 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/SlidingWindows.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/SlidingWindows.java
@@ -144,9 +144,12 @@ public class SlidingWindows extends NonMergingWindowFn<Object, IntervalWindow> {
   public void populateDisplayData(DisplayData.Builder builder) {
     super.populateDisplayData(builder);
     builder
-        .add(DisplayData.item("size", size))
-        .add(DisplayData.item("period", period))
-        .add(DisplayData.item("offset", offset));
+        .add(DisplayData.item("size", size)
+          .withLabel("Window Size"))
+        .add(DisplayData.item("period", period)
+          .withLabel("Window Period"))
+        .add(DisplayData.item("offset", offset)
+          .withLabel("Window Start Offset"));
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/Window.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/Window.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/Window.java
index ab6b7f0..324b4d5 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/Window.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/Window.java
@@ -602,29 +602,35 @@ public class Window {
 
       if (windowFn != null) {
         builder
-            .add(DisplayData.item("windowFn", windowFn.getClass()))
+            .add(DisplayData.item("windowFn", windowFn.getClass())
+              .withLabel("Windowing Function"))
             .include(windowFn);
       }
 
       if (allowedLateness != null) {
-        builder.addIfNotDefault(DisplayData.item("allowedLateness", allowedLateness),
+        builder.addIfNotDefault(DisplayData.item("allowedLateness", allowedLateness)
+              .withLabel("Allowed Lateness"),
             Duration.millis(BoundedWindow.TIMESTAMP_MAX_VALUE.getMillis()));
       }
 
       if (trigger != null && !(trigger instanceof DefaultTrigger)) {
-        builder.add(DisplayData.item("trigger", trigger.toString()));
+        builder.add(DisplayData.item("trigger", trigger.toString())
+          .withLabel("Trigger"));
       }
 
       if (mode != null) {
-        builder.add(DisplayData.item("accumulationMode", mode.toString()));
+        builder.add(DisplayData.item("accumulationMode", mode.toString())
+          .withLabel("Accumulation Mode"));
       }
 
       if (closingBehavior != null) {
-        builder.add(DisplayData.item("closingBehavior", closingBehavior.toString()));
+        builder.add(DisplayData.item("closingBehavior", closingBehavior.toString())
+          .withLabel("Window Closing Behavior"));
       }
 
       if (outputTimeFn != null) {
-        builder.add(DisplayData.item("outputTimeFn", outputTimeFn.getClass()));
+        builder.add(DisplayData.item("outputTimeFn", outputTimeFn.getClass())
+          .withLabel("Output Time Function"));
       }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/62f05d8b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigtable/BigtableIO.java
----------------------------------------------------------------------
diff --git a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigtable/BigtableIO.java b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigtable/BigtableIO.java
index bf85dea..9656494 100644
--- a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigtable/BigtableIO.java
+++ b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigtable/BigtableIO.java
@@ -266,14 +266,17 @@ public class BigtableIO {
     public void populateDisplayData(DisplayData.Builder builder) {
       super.populateDisplayData(builder);
 
-      builder.add(DisplayData.item("tableId", tableId));
+      builder.add(DisplayData.item("tableId", tableId)
+        .withLinkUrl("Table ID"));
 
       if (options != null) {
-        builder.add(DisplayData.item("bigtableOptions", options.toString()));
+        builder.add(DisplayData.item("bigtableOptions", options.toString())
+          .withLabel("Bigtable Options"));
       }
 
       if (filter != null) {
-        builder.add(DisplayData.item("rowFilter", filter.toString()));
+        builder.add(DisplayData.item("rowFilter", filter.toString())
+          .withLabel("Table Row Filter"));
       }
     }
 
@@ -448,10 +451,12 @@ public class BigtableIO {
     public void populateDisplayData(DisplayData.Builder builder) {
       super.populateDisplayData(builder);
 
-      builder.add(DisplayData.item("tableId", tableId));
+      builder.add(DisplayData.item("tableId", tableId)
+        .withLabel("Table ID"));
 
       if (options != null) {
-        builder.add(DisplayData.item("bigtableOptions", options.toString()));
+        builder.add(DisplayData.item("bigtableOptions", options.toString())
+          .withLabel("Bigtable Options"));
       }
     }
 


[2/2] incubator-beam git commit: This closes #338

Posted by bc...@apache.org.
This closes #338


Project: http://git-wip-us.apache.org/repos/asf/incubator-beam/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-beam/commit/638cc207
Tree: http://git-wip-us.apache.org/repos/asf/incubator-beam/tree/638cc207
Diff: http://git-wip-us.apache.org/repos/asf/incubator-beam/diff/638cc207

Branch: refs/heads/master
Commit: 638cc20719cb314d9e6b29fa79d45edcf4586dce
Parents: 0f2e6f3 62f05d8
Author: bchambers <bc...@google.com>
Authored: Mon May 16 12:44:19 2016 -0700
Committer: bchambers <bc...@google.com>
Committed: Mon May 16 12:44:19 2016 -0700

----------------------------------------------------------------------
 .../DataflowPipelineTranslatorTest.java         |  2 +
 .../java/org/apache/beam/sdk/io/AvroIO.java     | 28 +++++++++----
 .../java/org/apache/beam/sdk/io/BigQueryIO.java | 43 +++++++++++++-------
 .../sdk/io/BoundedReadFromUnboundedSource.java  |  9 ++--
 .../apache/beam/sdk/io/CompressedSource.java    |  9 ++--
 .../org/apache/beam/sdk/io/CountingInput.java   | 12 ++++--
 .../org/apache/beam/sdk/io/DatastoreIO.java     | 18 +++++---
 .../org/apache/beam/sdk/io/FileBasedSink.java   |  3 +-
 .../org/apache/beam/sdk/io/FileBasedSource.java |  3 +-
 .../apache/beam/sdk/io/OffsetBasedSource.java   |  9 ++--
 .../java/org/apache/beam/sdk/io/PubsubIO.java   | 42 +++++++++++--------
 .../main/java/org/apache/beam/sdk/io/Read.java  |  6 ++-
 .../java/org/apache/beam/sdk/io/TextIO.java     | 25 ++++++++----
 .../main/java/org/apache/beam/sdk/io/Write.java |  3 +-
 .../java/org/apache/beam/sdk/io/XmlSink.java    |  6 ++-
 .../java/org/apache/beam/sdk/io/XmlSource.java  |  9 ++--
 .../sdk/transforms/ApproximateQuantiles.java    |  6 ++-
 .../beam/sdk/transforms/ApproximateUnique.java  |  6 ++-
 .../org/apache/beam/sdk/transforms/Combine.java | 15 ++++---
 .../apache/beam/sdk/transforms/CombineFns.java  |  3 +-
 .../org/apache/beam/sdk/transforms/Filter.java  |  3 +-
 .../apache/beam/sdk/transforms/GroupByKey.java  |  3 +-
 .../transforms/IntraBundleParallelization.java  |  6 ++-
 .../apache/beam/sdk/transforms/MapElements.java |  3 +-
 .../org/apache/beam/sdk/transforms/Max.java     |  3 +-
 .../org/apache/beam/sdk/transforms/Min.java     |  3 +-
 .../org/apache/beam/sdk/transforms/ParDo.java   |  3 +-
 .../apache/beam/sdk/transforms/Partition.java   |  6 ++-
 .../org/apache/beam/sdk/transforms/Sample.java  |  6 ++-
 .../org/apache/beam/sdk/transforms/Top.java     |  6 ++-
 .../transforms/windowing/CalendarWindows.java   | 18 +++++---
 .../sdk/transforms/windowing/FixedWindows.java  |  6 ++-
 .../beam/sdk/transforms/windowing/Sessions.java |  3 +-
 .../transforms/windowing/SlidingWindows.java    |  9 ++--
 .../beam/sdk/transforms/windowing/Window.java   | 18 +++++---
 .../beam/sdk/io/gcp/bigtable/BigtableIO.java    | 15 ++++---
 36 files changed, 243 insertions(+), 125 deletions(-)
----------------------------------------------------------------------