Talend如何按条件筛选行:同SSN存在Open则取Open否则取Current
最优Talend实现方案
核心逻辑是通过「优先级排序+按唯一键去重」实现需求,仅需4个组件即可完成,流程简洁性能优异:
- 第一步:使用
tFileInputExcel读取Excel源数据,完成字段映射配置。 - 第二步:接入
tSortRow组件,设置两级排序规则:- 第一排序键为
SSN,排序顺序不限,仅需保证相同SSN的行聚合在一起 - 第二排序键为
TYPE,选择自定义排序顺序,将Open排在Current之前,确保同一SSN下优先级更高的行位于最前
- 第一排序键为
- 第三步:接入
tUniqRow组件,唯一键仅勾选SSN,配置为保留每个唯一键对应的第一行数据,自动过滤掉同一SSN下优先级更低的行 - 第四步:接入输出组件导出最终结果即可。
验证说明
针对你提供的样例数据,排序后SSN为12345的John对应的Open行会排在Current行之前,去重后仅保留Open行;其余仅存在Current的SSN会正常保留对应行,完全符合需求规则。
内容的提问来源于stack exchange,提问作者mastercooler6
相关产品推荐
相关产品推荐

