You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@beam.apache.org by GitBox <gi...@apache.org> on 2020/05/04 18:18:44 UTC

[GitHub] [beam] lostluck commented on a change in pull request #11564: [Beam-9679] Add Core Transforms section / Map lesson to the Go SDK katas

lostluck commented on a change in pull request #11564:
URL: https://github.com/apache/beam/pull/11564#discussion_r419627705



##########
File path: learning/katas/go/Core Transforms/Map/ParDo OneToMany/task.md
##########
@@ -0,0 +1,32 @@
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+
+# ParDo - One to Many
+
+In the previous kata we learned that ParDo maps a single element into another element.
+In this kata we will map a single element into many by splitting a sentence into words.
+
+**Kata:** Please write a ParDo that maps each input sentence into words tokenized by whitespace (" ").
+
+<div class="hint">
+  Use <a href="https://godoc.org/github.com/apache/beam/sdks/go/pkg/beam#ParDo">
+  ParDo</a>
+  with <a href="https://godoc.org/github.com/apache/beam/sdks/go/pkg/beam#hdr-DoFns">

Review comment:
       DoFns are generally a specific thing, so an article is handy.
   ```suggestion
     with a <a href="https://godoc.org/github.com/apache/beam/sdks/go/pkg/beam#hdr-DoFns">
   ```

##########
File path: learning/katas/go/Core Transforms/Map/ParDo OneToMany/task.md
##########
@@ -0,0 +1,32 @@
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+
+# ParDo - One to Many
+
+In the previous kata we learned that ParDo maps a single element into another element.
+In this kata we will map a single element into many by splitting a sentence into words.
+
+**Kata:** Please write a ParDo that maps each input sentence into words tokenized by whitespace (" ").
+
+<div class="hint">
+  Use <a href="https://godoc.org/github.com/apache/beam/sdks/go/pkg/beam#ParDo">
+  ParDo</a>

Review comment:
       Consider using the qualifed import name, like they'd see in their Go code (eg. beam.ParDo) , rather than just the single method. It would look odd to other languages, but the generally explicit package/provenance of identifiers is a hallmark of Go.

##########
File path: learning/katas/go/Core Transforms/Map/ParDo/task.md
##########
@@ -0,0 +1,39 @@
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+
+# ParDo
+
+ParDo is a Beam transform for generic parallel processing. The ParDo processing paradigm is similar to the “Map” 
+phase of a Map/Shuffle/Reduce-style algorithm: a ParDo transform considers each element in the input PCollection,
+performs some processing function (your user code) on that element, and emits zero, one, or multiple elements to an 
+output PCollection.
+
+**Kata:** Please write a simple ParDo that maps the input element by multiplying it by 10.

Review comment:
       A possible adjacent task/step is converting a func DoFn into a Structural DoFn. Yes, this is relatively simple, but from a learning standpoint, it makes the distinction pretty clear, while not asking users too much else that might conflate with it.  (eg. Getting the wrong idea that funcs must be 1:1 vs 1:many/none, vs structs etc).
   
   Not necessary to do it in this PR.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org