如何捕获文件中的最后一条记录

How to capture the last record in a file

我需要将顺序文件拆分为 3 个部分,Header、数据、预告片。我有 header 和数据计算。

有没有办法在 Transformer 中确定顺序文件中是否有最后一条记录?我尝试使用 LastRow() 但这给了我每个节点的最后一行。我需要保持并行化。

在此先感谢您的帮助。

对于尾行将通过哪个节点,您没有先验知识。因此,如果您想保留并行执行,则在 Transformer 阶段没有解决方案。

一种方法是在顺序文件阶段拒绝 link。这将捕获与定义的元数据不匹配的任何行。使用数据行的元数据设置舞台,然后 Header 和预告片将被捕获到拒绝 link 上。从它们的数据应该很明显,你可以进一步处理它们,甚至可以将它们重新加入你的数据行。

您还可以单独捕获最后一行(例如通过 head -1 文件名)并将其与处理的每一行进行比较以确定它是否是最后一行。计算量大,收益微乎其微。