【发布时间】:2017-11-03 06:09:28
【问题描述】:
首先,我是 Talend 的新手。这是我为培训目的而做的一个模拟项目。
这里是上下文:我有一个 CSV 文件(简称为“CSV_IN”),其中有一堆不同文件的路径,其中包含我需要检索的信息。我无法更改文件,也无法更改文件树,因此我必须使用“CSV_IN”中设置的路径检索文件。
所以,在 Talend Open Studio 中,我做了这样的事情:
似乎为 CSV 的每一行调用了“tJavaRows”,从而提供了一种迭代类型的输出而不是流。但是,如果我尝试直接从这里使用触发器,它会等待所有行完成,然后才发送一个触发器。
问题是我需要在 CSV_Input 中读取 FOR EACH 路径,子作业将打开路径指向的文件并做一些事情(这里我只是打印内容,现在...)
所以在绿色部分,我迭代输出并为每个路径发送一个“OnComponentOK”。 “tJava_1”实际上什么都不做。
但是当我运行作业时,我得到了这个:
Blue SubJob 运行 4 次,这是我在 CSV_IN 中的路径数。但是为什么内容为空?
如果我打印上下文变量,我应该有 4 条路径。
我觉得整个工作太……MacGyver-ish…… 有没有更好的方法来做到这一点?
编辑:如果我使用“tJavaRow”而不是“tJava”,我可以使用“input_row”来打印文件。但我不能用“tJavaRow”做我想做的事......无论如何,这是另一个问题......
但问题仍然存在:这是“正确”的做法吗?
【问题讨论】:
标签: talend