首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Talend -如何循环tmap的输出

Talend -如何循环tmap的输出
EN

Stack Overflow用户
提问于 2017-06-19 15:14:28
回答 2查看 6.4K关注 0票数 1

我有一个要求,就是我要从tmap获得min_agemax_age。我想循环这两个输入,即从、min_age、max_age,并在每个迭代值中将记录插入cassandra表。

例如,min_age是10,max_age是15,然后我想在cassandra表中插入记录作为10、11、12、13、14和15。

我试着想出一个解决办法,但没有成功。tloop组件似乎是最适合的,但不幸的是,tmap没有迭代器连接器。

有人能帮上忙吗。

EN

回答 2

Stack Overflow用户

发布于 2017-06-19 15:42:12

您只需使用tFlowToIterate将输入流行转换为迭代。然后在每个迭代行上添加一个循环,以进一步迭代min/max值。然后,您可以使用tIteratetoFlow将迭代转换回流。

下面是一个测试工作:

这就是我如何设置我的tRowGenerator来尝试模拟您的输入流(如果需要,可以使用多行):

以及循环的组件设置:

以及将迭代转换回流的组件设置:

这是日志输出:

代码语言:javascript
运行
复制
Starting job testjob at 11:35 19/06/2017.

[statistics] connecting to socket on port 3914
[statistics] connected
10
11
12
13
14
15
[statistics] disconnected
Job testjob ended at 11:35 19/06/2017. [exit code=0]
票数 3
EN

Stack Overflow用户

发布于 2017-06-19 15:34:25

你可以有这样一个子工作:[inputflow] --> tFlowToIterate-->tLoop-->tFixedFlowInput--> DBInsert

在tLoop中,只需使用tFlowToIterate构造的globalMap变量来填充"from“和" to”字段(在这些字段中使用ctrl空间查找由tFlowToIterate构造的变量)。在tFixedFlow中,您可以构造要插入的数据:它是tloop:((Integer)globalMap.get("tLoop_1_CURRENT_VALUE"))的当前值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44634210

复制
相关文章

相似问题

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