You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by ib...@apache.org on 2020/04/21 19:41:24 UTC

[beam] branch release-2.21.0 updated: [BEAM-9569] Fix BeamSqlPojoExample logRecords method to not require Row coder inference

This is an automated email from the ASF dual-hosted git repository.

ibzib pushed a commit to branch release-2.21.0
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/release-2.21.0 by this push:
     new 365d9ef  [BEAM-9569] Fix BeamSqlPojoExample logRecords method to not require Row coder inference
     new 61077ac  Merge pull request #11473 from iemejia/release-2.21.0
365d9ef is described below

commit 365d9effdeb5719ad9a8ea743d5e5f4c003b0ee4
Author: Ismaël Mejía <ie...@gmail.com>
AuthorDate: Sat Apr 18 10:53:19 2020 +0200

    [BEAM-9569] Fix BeamSqlPojoExample logRecords method to not require Row coder inference
    
    It also adds a warning that Coder inference of Row objects is now
    disabled into the release CHANGELOG.
---
 CHANGES.md                                         |  1 +
 .../extensions/sql/example/BeamSqlPojoExample.java |  8 ++---
 .../sdk/extensions/sql/example/model/Customer.java | 34 +++++++++++++++-------
 .../sdk/extensions/sql/example/model/Order.java    |  5 ++++
 4 files changed, 34 insertions(+), 14 deletions(-)

diff --git a/CHANGES.md b/CHANGES.md
index f2edcfa..b34c543 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -100,6 +100,7 @@ conversion to beam schema options. *Remark: Schema aware is still experimental.*
 * Dataflow runner now requires the `--region` option to be set, unless a default value is set in the environment ([BEAM-9199](https://issues.apache.org/jira/browse/BEAM-9199)). See [here](https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) for more details.
 * HBaseIO.ReadAll now requires a PCollection of HBaseIO.Read objects instead of HBaseQuery objects ([BEAM-9279](https://issues.apache.org/jira/browse/BEAM-9279)).
 * ProcessContext.updateWatermark has been removed in favor of using a WatermarkEstimator ([BEAM-9430](https://issues.apache.org/jira/browse/BEAM-9430)).
+* Coder inference for PCollection of Row objects has been disabled ([BEAM-9569](https://issues.apache.org/jira/browse/BEAM-9569)).
 
 ## Deprecations
 * Java SDK: Beam Schema FieldType.getMetadata is now deprecated and is replaced by the Beam
diff --git a/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/example/BeamSqlPojoExample.java b/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/example/BeamSqlPojoExample.java
index 865d059..02db896 100644
--- a/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/example/BeamSqlPojoExample.java
+++ b/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/example/BeamSqlPojoExample.java
@@ -101,13 +101,13 @@ class BeamSqlPojoExample {
     pipeline.run().waitUntilFinish();
   }
 
-  private static MapElements<Row, Row> logRecords(String suffix) {
+  private static MapElements<Row, Void> logRecords(String suffix) {
     return MapElements.via(
-        new SimpleFunction<Row, Row>() {
+        new SimpleFunction<Row, Void>() {
           @Override
-          public Row apply(Row input) {
+          public Void apply(Row input) {
             System.out.println(input.getValues() + suffix);
-            return input;
+            return null;
           }
         });
   }
diff --git a/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/example/model/Customer.java b/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/example/model/Customer.java
index 8aa1880..cb9e132 100644
--- a/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/example/model/Customer.java
+++ b/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/example/model/Customer.java
@@ -25,8 +25,8 @@ import org.apache.beam.sdk.schemas.annotations.DefaultSchema;
 /** Describes a customer. */
 @DefaultSchema(JavaBeanSchema.class)
 public class Customer implements Serializable {
-  private String name;
   private int id;
+  private String name;
   private String countryOfResidence;
 
   public Customer(int id, String name, String countryOfResidence) {
@@ -37,26 +37,26 @@ public class Customer implements Serializable {
 
   public Customer() {}
 
-  public String getName() {
-    return name;
-  }
-
   public int getId() {
     return id;
   }
 
-  public String getCountryOfResidence() {
-    return countryOfResidence;
+  public String getName() {
+    return name;
   }
 
-  public void setName(String name) {
-    this.name = name;
+  public String getCountryOfResidence() {
+    return countryOfResidence;
   }
 
   public void setId(int id) {
     this.id = id;
   }
 
+  public void setName(String name) {
+    this.name = name;
+  }
+
   public void setCountryOfResidence(String countryOfResidence) {
     this.countryOfResidence = countryOfResidence;
   }
@@ -77,6 +77,20 @@ public class Customer implements Serializable {
 
   @Override
   public int hashCode() {
-    return Objects.hash(name, id, countryOfResidence);
+    return Objects.hash(id, name, countryOfResidence);
+  }
+
+  @Override
+  public String toString() {
+    return "Customer{"
+        + "id="
+        + id
+        + ", name='"
+        + name
+        + '\''
+        + ", countryOfResidence='"
+        + countryOfResidence
+        + '\''
+        + '}';
   }
 }
diff --git a/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/example/model/Order.java b/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/example/model/Order.java
index 999b2b8..f9c5ef2 100644
--- a/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/example/model/Order.java
+++ b/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/example/model/Order.java
@@ -67,4 +67,9 @@ public class Order implements Serializable {
   public int hashCode() {
     return Objects.hash(id, customerId);
   }
+
+  @Override
+  public String toString() {
+    return "Order{" + "id=" + id + ", customerId=" + customerId + '}';
+  }
 }