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

Apache flink作业中的一个对象flink运算符(例如筛选器)或两个对象

石正奇
2023-03-14

我有来自不同Apache Kafka主题的4个输入数据流(JSON消息)的Apache Flink作业,而我只有一个对象XFilterFunction--它执行一些筛选。我写了一些数据管道逻辑(原始示例):

FilterFunction<MyEvent> xFilter = new XFilterFunction();

inputDataStream1.filter(xFilter)
.name("Xfilter")
.uid("Xfilter");

inputDataStream2
.union(inputDataStream3)
//here some logics (map, process,...)
.filter(xFilter);

在作业中使用一个新对象XFilterFunction是好还是坏?
还是使用两个新对象XFilterFunction更好?(2个流->2个新筛选器对象)

共有1个答案

徐皓君
2023-03-14

如果您多次实例化该类,即。

inputDataStream1.filter(new XFilterFunction());
...
inputDataStream2.filter(new XFilterFunction());

应该没有问题。我不是很确定,如果不是这样,像状态或重写的上下文函数会显示不想要的行为。如果它不是richfunction的专门化,甚至可能只有一个通过委托进行的纯函数调用,不幸的是,我对Flink的内部没有那么深入,但是有了上面的解决方案,您应该是安全的。

 类似资料:
  • 我有一个检查两个变量引用的代码,我遇到了这个有点混乱的情况: 结果是: 我的第一个问题是为什么第一个和第三个引用相等?如果第三个变量等于第二个变量,它应该是,因为它们的对象引用不相等。 当我将值更改为时,我感到困惑,如下所示: 然后结果变成: 为什么会这样?

  • 我用一个字段构造了一个类。然后创建了两个对象,并且必须使用运算符和对它们进行比较。以下是我所做的:

  • 问题内容: 给定以下类,如何将两个实例中的所有值相互比较? 为此的用例是在显示来自服务器的数据的应用程序中。将数据转换为对象后,便会创建该对象的副本。用户能够编辑各种字段等,从而更改对象之一中的值。 需要将可能已更新的主要对象与该对象的副本进行比较。如果对象相等(所有属性的值都相同),则不会发生任何事情。如果任何一个值都不相等,那么应用程序会将更改提交给服务器。 如代码示例所示,由于未指定值,因此

  • 问题内容: 我建立了一个领域的课程。然后,我创建了两个对象,我也必须使用运算符对其进行比较。这是我所做的: 问题答案: 比较对象引用,它检查两个操作数是否指向同一对象(不是等效对象,是同一对象)。 如果要比较字符串(以查看它们是否包含相同的字符),则需要使用来比较字符串。 在你的情况下,如果字符串匹配,则确实将两个居中实例视为相等,则: …但是通常,如果你要定义一个类,那么等效性要比单个字段的等效

  • 使用saveOrUpdate创建新的ebject时,hibernate将对象存储在数据库中并正确返回。但在方法的同一调用中创建了一个带有一些空列的附加对象。 数据库中的对象如下所示: 这是数据类: 这是我将对象存储到数据库的方式:public class DataUtils{private Session Session;private static DataUtils DataUtils; 和我

  • 问题内容: 我想将某些对象存储在HashMap中。问题是,通常您只使用一个对象作为键。(例如,您可以使用字符串。)要使用多个对象,我想这样做。例如,一个类和一个字符串。有没有简单干净的方法来实现这一目标? 问题答案: 您的密钥必须实现hashCode和equals。如果它是 SortedMap ,则还必须实现Comparable接口