我有ETL
提供文本文件输出,我必须使用pentaho检查这些文字内容是否包含单词error or bad
。
有没有简单的方法可以找到它?
答案 0 :(得分:1)
如果您尝试处理大量文件,可以使用“获取文件名”步骤获取所有文件名。然后,如果文本文件很小,则可以使用“获取文件内容”步骤将整个文件作为一行,然后使用Java过滤器或其他匹配步骤(例如RegEx)来搜索单词。 如果您的文本文件太大但基于行或以固定格式(如果您使用文本文件输出步骤可能是这样),您可以使用文本文件输入步骤获取行,然后使用匹配器步骤(见上文)找到行中的单词。然后,您可以使用“过滤行”步骤选择仅包含单词的行,然后选择“值”以选择文件名,然后选择文件名中的“排序行”,然后选择“唯一行”步骤。结果应该是文件名列表,其内容包含搜索词。 这可能看起来像很多步骤,但是Pentaho数据集成或PDI(又名Kettle)被设计成具有不同(并且非常可重复使用)功能的步骤流。较小但较少的“PDI”方法是编写用户定义的Java类(或其他脚本)步骤来完成所有工作。此解决方案具有较少的步骤,但不是非常可配置或可重复使用。
答案 1 :(得分:1)
如果你自己写这些文件,那么你不知道内容吗?因此,请扫描已在内存中存在的字段。
如果您正在尝试查看Pentaho是否已向文件写入错误,那么您应该在输出步骤中使用错误处理。
最后PDI不是文本搜索工具。如果你真的需要这样做,那么最好的选择就是好老grep ..