2

我正在对 Pentaho 数据集成进行转换,并且我的 SFTP 服务器目录中有一个文件列表。此文件以 FILE_YYYYMMDDHHIISS.txt 格式命名,我的目录如下所示:

  • 我的目录
    • FILE_20130701090000.txt
    • FILE_20130701170000.txt
    • FILE_20130702090000.txt
    • FILE_20130702170000.txt
    • FILE_20130703090000.txt
    • FILE_20130703170000.txt

我的问题是我需要根据其创建日期获取此列表的最后一个文件,以将其传递给其他转换步骤...

如何在 Pentaho 数据集成中做到这一点?

4

1 回答 1

3

事实上,这很简单,因为您的文件名可以按文本排序,排序列表中的最大值将是您最近的文件。

由于文件列表可能很短,您可以使用一个Memory Group by步骤。分组步骤需要一个单独的列来聚合。如果您只有列并且您想在整个集合中找到最大值,您可以添加一个带有Add Constants步骤的分组列,并将其配置为添加一个列,例如每行中的整数 1。

将您Memory Group by的分组配置在 1s 列上,并使用文件名列作为主题。然后只需选择最大分组类型。这将生成一行,其中包含您的分组列、删除的文件名字段和包含您的最大文件名的聚合列。它看起来像这样:

在此处输入图像描述

于 2013-07-19T00:21:13.460 回答