1

我有一个ETL提供文本文件输出的文件,我必须检查那些文本内容是否有error or bad使用 pentaho 的单词。

有什么简单的方法可以找到吗?

4

2 回答 2

1

如果您尝试处理多个文件,您可以使用获取文件名步骤来获取所有文件名。然后,如果您的文本文件很小,您可以使用获取文件内容步骤将整个文件作为一行,然后使用 Java 过滤器或其他匹配步骤(例如,RegEx)来搜索单词。如果您的文本文件太大但基于行或以其他方式采用固定格式(如果您使用文本文件输出步骤可能是这种情况),您可以使用文本文件输入步骤来获取行,然后是匹配器步骤(见上文)以查找该行中的单词。然后,您可以使用 Filter Rows 步骤仅选择那些包含单词的行,然后 Select Values 仅选择文件名,然后对文件名执行 Sort Rows,然后使用 Unique Rows 步骤。结果应该是内容包含搜索词的文件名列表。这可能看起来有很多步骤,但是 Pentaho 数据集成或 PDI(又名 Kettle)被设计为具有独特(并且非常可重用)功能的步骤流。一个更小但更少“PDI”的方法是编写一个用户定义的 Java 类(或其他脚本)步骤来完成所有工作。此解决方案具有较少的步骤,但不是非常可配置或可重用。

于 2012-12-24T15:15:55.463 回答
1

如果您自己编写这些文件,那么您不知道内容吗?因此,请扫描您已经将它们存储在内存中的字段。

如果您试图查看 Pentaho 是否已将错误写入文件,那么您应该在输出步骤中使用错误处理。

最后,PDI 不是文本搜索工具。如果你真的需要这样做,那么最好的选择可能是好的老 grep ..

于 2012-12-28T07:29:55.250 回答