首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hazelcast Jet -如何在Jet管道中使用非静态方法

Hazelcast Jet -如何在Jet管道中使用非静态方法
EN

Stack Overflow用户
提问于 2020-09-01 00:59:39
回答 1查看 45关注 0票数 0

我在下面有一个基本的管道。在其中一个步骤中,我希望通过调用服务中的方法来转换对象,如下所示。但是Jet抛出了一个错误,指出这个mapFn是不可序列化的。在这里做什么?对于静态方法,它工作得非常好。

代码语言:javascript
复制
p.readFrom(source)
     .map(r -> dataTransformer.transformRecord(r))// dataTransformer is a service
     .writeTo(Sinks.filesBuilder(userHome).build());
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-02 15:10:42

使用mapUsingService并使用ServiceFactory创建服务

代码语言:javascript
复制
p.readFrom(source)
 .mapUsingService(
    ServiceFactories.sharedService(pctx -> new DataTransformer()),
    (dataTransformer, r) -> dataTransformer.transformRecord(r))
 ...

或者,如果您的服务是可序列化和无状态的,您可以将其复制到本地变量:

代码语言:javascript
复制
DataTransformer dataTransformerLocal = dataTransformer;
p.readFrom(source)
     .map(r -> dataTransformerLocal.transformRecord(r))
     .writeTo(Sinks.filesBuilder(userHome).build());
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63675075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档