在这篇 Talend 文章中,我们将展示如何使用 Talend tMap 组件根据表达式过滤行。我们可以使用 tMap 作为 tFilterRow 的替代方案来过滤表中的行或记录。
为了演示 Talend tMap 过滤行,我们使用了与 tFilterRow 示例中相同的客户数据。因此,我将使用 tDBInput 来选择表。

将 Talend tMap 拖放到作业设计中,并将 tDBInput 的 Main 行连接到 tMap。

双击 tMap 将打开以下窗口。
Talend tMap 过滤行示例
单击加号 (+) 按钮为这个 Talend tMap 添加一个新的输出,我们将其命名为 Filtered_Rows。

将 row1 中所有可用的列拖到 Filter_Rows 输出。接下来,请单击小表达式图标,它将打开一个空白区域来编写表达式。

以下表达式将显示职业不是“文职人员”的客户。

我将使用 tLogRow 来显示 Talend tMap 过滤行的输出。为此,请将 tLogRow 添加到工作流中,并将 tMap 的主行连接到它。接下来,在 tLogRow 组件选项卡中,选择表选项。请运行 Talend tMap 过滤行作业以查看输出。

我们还可以编写多个表达式或条件来过滤输出行。要编写复杂表达式,或者如果您不知道函数名称,请单击浏览按钮。它将打开表达式生成器,并使用它来查看 Talend 所有可用的内置函数。在这里,我们添加了一个额外的条件,它过滤年收入大于 50000 的员工。

您可以看到所有收入大于 50000 且职业不是“文职人员”的记录。

接下来,我们添加了一个额外的输出以显示被拒绝的行,并将所有行添加到其中。

请将 Catch output reject 选项从默认的 false 更改为 True。接下来,单击 OK 按钮关闭 Talend tMap 窗口。

现在,您可以看到不满足表达式的被拒绝行或行。
