【发布时间】:2016-05-14 01:34:27
【问题描述】:
我已经构建了一个从文件中读取数据的作业,并根据特定列的唯一数据,将数据集拆分为多个文件。
我能够通过以下工作达到要求:
现在从将输出拆分为多个文件的这份工作中,我想要添加一个子工作,它会给我两列。
在第一列中,我想要我在主要作业中创建的文件的名称,在第二列中,我想要每个创建的输出文件的行数。
为了实现这一点,我使用了 tflowmeter 并捕获计数的结果,我使用了 tFlowmeterCatcher,它为我提供了对应输出文件的每行计数的正确结果,但给出了所有文件中的最后一个文件名我为计数生成的。
如何获得正确的文件名和相应的行数。
【问题讨论】:
-
能否在第二个流程中使用
(String)globalMap.get("tFileInputPositional_1_CURRENT_FILE")获取当前文件名?只需将其作为值添加到tMap_2。 -
@tobi6 当我使用您建议的全局参数时,它给了我空值。我使用的是 ((String)globalMap.get("row7.newColumn1")) 参数,但它给了我所有唯一记录的最后一个文件名。你能帮忙解决一些其他的逻辑吗
-
好的,我应该把
(String)globalMap.get("tFileInputPositional_1_CURRENT_FILE")带到那里,但这也行不通,因为 tFlowMeterCatcher 是在上层作业之后执行的。你想达到什么目的? -
我想生成文件,每个文件都具有我在主要工作中创建的文件的名称,在第二列中,我想要每个创建的输出文件的行数。
-
你现在如何生成
tFileOutputDelimited_1中的文件名?也许您可以使用 tJavaFlex 组件来计算行数并存储文件名和行数。