当前位置: 首页 > 知识库问答 >
问题:

IntelliJ中Flink WordCount输出中的数字

岳卓君
2023-03-14

我正在学习ApacheFlink,并通过IntelliJ中的Maven将其集成。我尝试了GitHub的WordCount示例:GitHub的WordCount示例

我只是调整了输入文本。

产生输出的代码的主要部分是:

DataStream<Tuple2<String, Integer>> counts =
                // split up the lines in pairs (2-tuples) containing: (word,1)
                text.flatMap(new Tokenizer())
                        // group by the tuple field "0" and sum up tuple field "1"
                        .keyBy(value -> value.f0)
                        .sum(1);

        // emit result
        if (params.has("output")) {
            counts.writeAsText(params.get("output"));
        } else {
            System.out.println("Printing result to stdout. Use --output to specify output path.");
            counts.print();
        }
        // execute program
        env.execute("Streaming WordCount");

我在IntelliJ中得到以下输出

4> (name,1)
4> (years,1)
3> (hello,1)
3> (twice,1)
5> (the,1)
2> (i,1)
6> (my,1)
2> (am,1)
6> (florian,1)
7> (old,1)
2> (thirteen,1)
6> (word,1)
8> (is,1)
8> (is,2)
6> (florian,2)
6> (written,1)

所以我有两个问题:

>

  • “$NUMBER”是什么

    与文本一样,“florian”一词在输出中出现两次。这是由于写入输出的子任务吗?所以每次增加字数时,新的字数都会写入输出?有没有可能把这些集合起来,这样就只写最后的计数?

    我知道这些是非常基本的问题,但我对ApacheFlink和一般的分布式处理框架都是新手,但我很想学习它。所以先谢谢你!:)

  • 共有2个答案

    晋鹤轩
    2023-03-14

    WordCoiunt是流媒体领域的“你好世界”。

    1. 数字显示重复次数
    那安宁
    2023-03-14

    >

  • 是的,$数字

    您正在流式执行模式下运行此应用程序。当以这种方式运行时,Flink无法知道它将看到多少输入——它被设计为能够持续、永久地运行。由于不可能等待“结束”来生成单个、最终的字数报告,因此,每个输入记录都会导致生成一个更新的输出记录。您可以改为在批处理执行模式下运行此应用程序,假设它只提供有界输入,在这种情况下,它将运行到完成,并且只报告最终的字数。看见https://ci.apache.org/projects/flink/flink-docs-stable/dev/datastream_execution_mode.html详情请参阅。

  •  类似资料:
    • 问题内容: 使用第三方API,我观察到以下内容。 而不是使用 它使用类似 我得到分配的“输出”字符串。 我很好奇实现这种功能的原因。使用此类输出参数的优点是什么? 问题答案: 在您的示例中有不对的地方。 在上面的程序中,将输出字符串“ foo”, 而不是 “ Hello World”。 某些类型是可变的,在这种情况下,您可以修改传递给函数的对象。对于不可变的类型(例如),您必须构建某种包装类,而可

    • 这似乎真的很疯狂,但在我的IntelliJ想法的控制台中,我不能用中断的编码做任何事情。 我为克服这一点所做的事情: 在

    • 更新:我开始怀疑这是否是由于错误: https://github.com/domaindrivendev/Swashbuckle/issues/590 但这里提出的解决办法似乎并没有解决我的问题。 我正在使用SwashBuckle为C#ASP.NETWeb API项目生成API留档。 我的目标是允许以下作为有效URL: 其中必需参数(param1)设置为“foo ”,可选参数(param2)设置为

    • 我将intellij(2019.1.1)用于java gradle(5.4.1)项目,并将lombok(1.18.6)用于自动生成代码。Intellij将生成的源代码置于“输出/生产/类/生成/”下 和gradle将它们放在

    • 本文向大家介绍python中的print()输出,包括了python中的print()输出的使用技巧和注意事项,需要的朋友参考一下 1.普通的输出: print(str)#str是任意一个字符串,数字··· 2.格式化输出: 与C语言有点类似 3.其它: 下面看下描述python中的print()函数 print() 方法用于打印输出,最常见的一个函数。 print 在 Python3.x 是一个