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

Hazelcast Jet 0.6.1-使用管道customTransform API编译错误

白彦
2023-03-14

我在使用管道CustomTransformAPI时遇到了以下编译错误。

private Pipeline buildPipeline2() {
    Pipeline p = Pipeline.create();
    p.drawFrom(Sources.<String, CacheEntry<AuditLogRecord>>remoteMapJournal("cache_AuditLog", getClientConfig(), START_FROM_OLDEST))
          .addTimestamps((v) ->  getTimeStamp(v), 3000)
          .peek()
          .groupingKey((v) -> Tuple2.tuple2(getUserID(v),getTranType(v)))
    .window(WindowDefinition.sliding(SLIDING_WINDOW_LENGTH_MILLIS, SLIDE_STEP_MILLIS))
    //.aggregate(counting(),(winStart, winEnd, key, result) -> String.format("%s %5s %4d", toLocalTime(winEnd), formatKey(key), result))
    .aggregate(counting())
    .map((v)-> getMapKey(v))
    .customTransform("test2", ()-> this)
    .drainTo(Sinks.map("Test"));
    //.drainTo(Sinks.files("c:\\data\\op.txt"));
    return p;
  }
protected boolean tryProcess(int ordinal, Object item) {
    JetEvent jetEvent = (JetEvent)item;
    Object obj = jetEvent.payload();
    tryEmit(ordinal,item);
    return true;
}
incompatible types: inferred type does not conform to upper bound(s)
[ERROR] inferred: java.lang.Object
[ERROR] upper bound(s): java.util.Map.Entry
 .customTransform("test2", ()-> this)
 .drainTo(Sinks.files("c:\\data\\op.txt"));

但是,下面的代码给出了编译错误。

.customTransform("test2", ()-> this)
.drainTo(Sinks.map("Test"));

你能帮我解决这个问题吗?

共有1个答案

李经国
2023-03-14

CustomTransform不是类型安全的。如果无法推断类型参数,则计算结果为Object。但是,sinks.map需要map.entry 。要解决此问题,请向CustomTransform方法添加类型提示:

    .<Map.Entry<YourKeyType, YourValueType>customTransform("test2", ()-> this)
    .drainTo(Sinks.map("Test"));

请记住,如果您的自定义处理器实际上没有返回map.entry,它将在运行时失败。

sinks.files工作是因为它接受对象

 类似资料:
  • 传递参数 链接管道 我们可以将多个管道连接在一起,以便在一个表达式中使用多个管道。

  • 我试着运行一个thrift网站上提供的thrift服务器和客户端程序,我得到了以下错误。谁能帮我解决这些错误吗。编码可以在以下位置找到:https://thrift.apache.org/tutorial/java

  • 问题内容: 我在执行正则表达式匹配的函数前使用,即使使用注释,我仍然遇到错误。 请注意,它会多次调用该函数,并且仅在实际匹配后才会发生异常。 这是我的代码: 进行詹金斯构建时的输出: 问题答案: 可能是由于范围可变。尝试像这样限制它: 在全局脚本绑定中创建没有变量的变量,因此从方法退出后仍然存在。

  • 问题内容: 我正在尝试将此JPA QL转换为条件构建器。JBoss 6.0。 我根据一些教程编写了此代码。 但是,我在一行中遇到了一个编译错误: 错误是: 问题答案: 好吧,我终于找到了调用gt()方法的正确方法。这是完整的解决方案。在JBoss 6中经过全面测试。

  • 我在使用汇总编译Vue脚本时遇到问题。我得到的错误是 [!] 错误:节点_modules/vue/dist/vue未导出“openBlock”。运行时。esm。js,由src/js/components/TestButton导入。vue?vue app.js TestButton.vue 卷起来。配置。js 我尝试了很多不同的东西,但似乎没有任何帮助。但是,如果我在配置中的vuePlugin之前加