如何在Pentaho中拆分CPF唯一与重复数据行?
在Pentaho中拆分CPF唯一与重复数据的实现步骤
你已经完成了Data grid(输入数据)和Sort rows(按CPF字段排序)的步骤,接下来按以下操作即可拆分出两个输出:
步骤1:添加Group by步骤统计CPF出现次数
- 拖拽
Group by步骤到画布,连接Sort rows的输出到该步骤 - 在Group by配置中:
- 分组字段:选择
CPF(以此作为分组依据) - 聚合字段:添加一个新字段(比如命名为
count_cpf),聚合函数选择Count(统计每个CPF的出现行数)
- 分组字段:选择
步骤2:关联统计结果到原数据
拖拽Merge join步骤到画布:
- 第一个输入连接
Sort rows的原数据流,第二个输入连接Group by的统计结果流 - 配置Merge join:
- 关联字段选择
CPF(两个流都按CPF匹配) - 连接类型选择Inner join,确保所有原数据都能关联到对应的统计次数
- 关联字段选择
步骤3:拆分数据流
添加Filter rows步骤,连接Merge join的输出:
- 配置第一个Filter规则:
count_cpf = 1,将符合条件的数据流导向CPF唯一数据的输出步骤(比如Text file output) - 再添加一个
Filter rows步骤,配置规则:count_cpf > 1,将符合条件的数据流导向CPF重复数据的输出步骤(也可使用Switch/case步骤提高效率)
最终输出验证
运行转换后,两个输出会分别得到你需要的结果:
CPF唯一的数据行输出
| CPF | Nome | Ano | -------------------------------------| |636.624.160-00 |Alexandre Dias| 2023| |311.520.000-55 |Maria Pereira | 2022|
CPF重复的数据行输出
| CPF | Nome | Ano | -------------------------------------| |438.815.860-75 |José da Silva | 2023| |438.815.860-75 |José da Silva | 2022| |835.894.510-84 |Otávio Campos | 2023| |835.894.510-84 |Otávio Campos | 2022|
内容的提问来源于stack exchange,提问作者campos
相关产品推荐
相关产品推荐

