Pentaho中基于相同键合并城市与人员列表并实现城市名重复
Pentaho 合并列表实现城市名自动重复的解决方案
问题还原
我需要在Pentaho中合并两个列表,现有18个城市,给两个列表都添加了最大值为18的序列(city_ID-Sequence,最大值匹配文本文件ID字段的最大值),期望通过Merge Join 2基于相同ID合并,让csv file input 2中的城市名自动重复,无需手动生成。尝试全外连接且确认ID设置正确,但未得到预期效果。
相关截图:
- 转换流程截图:

- 合并结果截图:

- 城市列表截图:

- 添加序列后的人员列表截图:

解决思路&操作步骤
你想要的是每个人员对应所有城市的关联效果(笛卡尔积),Merge Join的全外连接逻辑不适用这个场景,换用以下方法:
- 移除两个列表上添加的
city_ID-Sequence序列组件,不需要手动生成匹配ID - 在转换中添加**Cartesian Product(笛卡尔积)**组件,替代原来的Merge Join 2
- 将csv file input 1(人员列表)和csv file input 2(城市列表)分别连接到Cartesian Product组件的两个输入端口
- 运行转换,即可得到每个人员对应所有18个城市的结果,城市名会自动重复匹配
注意事项
- 确认csv file input 2的城市列表确实包含18条有效数据
- Cartesian Product组件无需设置额外连接条件,直接实现两个数据集的全量交叉关联
内容的提问来源于stack exchange,提问作者Diogo R
相关产品推荐
相关产品推荐

