[
https://issues.apache.org/jira/browse/BEAM-1754?focusedWorklogId=762329&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-762329
]
ASF GitHub Bot logged work on BEAM-1754:
----------------------------------------
Author: ASF GitHub Bot
Created on: 26/Apr/22 14:02
Start Date: 26/Apr/22 14:02
Worklog Time Spent: 10m
Work Description: damccorm commented on code in PR #17341:
URL: https://github.com/apache/beam/pull/17341#discussion_r858754251
##########
sdks/typescript/src/apache_beam/examples/wordcount2.ts:
##########
@@ -0,0 +1,63 @@
+/*
+ * 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.
+ */
+
+// TODO: Should this be in a top-level examples dir, rather than under
apache_beam.
+
+import * as beam from "../../apache_beam";
+import * as textio from "../io/textio";
+import { DirectRunner } from "../runners/direct_runner";
+
+import { count } from "../transforms/combiners";
+import { GroupBy } from "../transforms/group_and_combine";
+
+import { PortableRunner } from "../runners/portable_runner/runner";
+
+class CountElements extends beam.PTransform<
+ beam.PCollection<any>,
+ beam.PCollection<any>
+> {
+ expand(input: beam.PCollection<any>) {
+ return input
+ .map((e) => ({ element: e }))
+ .apply(new GroupBy("element").combining("element", count, "count"));
+ }
+}
+
+function wordCount(lines: beam.PCollection<string>): beam.PCollection<any> {
+ return lines
+ .map((s: string) => s.toLowerCase())
+ .flatMap(function* (line: string) {
+ yield* line.split(/[^a-z]+/);
+ })
+ .apply(new CountElements("Count"));
+}
+
+async function main() {
+ // python apache_beam/runners/portability/local_job_service_main.py --port
3333
+ await new PortableRunner("localhost:3333").run(async (root) => {
+ const lines = await root.asyncApply(
+ new textio.ReadFromText("gs://dataflow-samples/shakespeare/kinglear.txt")
Review Comment:
Can we give this file (and wordcount3.ts) more descriptive names? Maybe
something like `wordcount_textio.ts` and `wordcount_xlang.ts`
Issue Time Tracking
-------------------
Worklog Id: (was: 762329)
Time Spent: 3.5h (was: 3h 20m)
> Will Dataflow ever support Node.js with an SDK similar to Java or Python?
> -------------------------------------------------------------------------
>
> Key: BEAM-1754
> URL: https://issues.apache.org/jira/browse/BEAM-1754
> Project: Beam
> Issue Type: New Feature
> Components: sdk-ideas
> Reporter: Diego Zuluaga
> Assignee: Kerry Donny-Clark
> Priority: P3
> Labels: node.js
> Time Spent: 3.5h
> Remaining Estimate: 0h
>
> I like the philosophy behind DataFlow and found the Java and Python samples
> highly comprehensible. However, I have to admit that for most Node.js
> developers who have little background on typed languages and are used to get
> up to speed with frameworks incredibly fast, learning Dataflow might take
> some learning curve that they/we're not used to. So, I wonder if at any point
> in time Dataflow will provide a Node.js SDK. Maybe this is out of the
> question, but I wanted to run it by the team as it would be awesome to have
> something along these lines!
> Thanks,
> Diego
> Question originaly posted in SO:
> http://stackoverflow.com/questions/42893436/will-dataflow-ever-support-node-js-with-and-sdk-similar-to-java-or-python
--
This message was sent by Atlassian Jira
(v8.20.7#820007)