You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用Pentaho基于参考CSV替换目标CSV中的城市简称?

嘿,这个需求在Pentaho Data Integration(也就是咱们常说的Spoon)里用几个核心组件就能轻松实现,我给你一步步拆解操作流程,保证你能快速上手:

步骤1:新建转换

打开Pentaho Spoon,点击左上角的「文件」→「新建」→「转换」,创建一个空白的转换工程。

步骤2:加载两个CSV数据源

从左侧的「输入」分类里,拖两个CSV文件输入组件到画布上,分别对应你的两个CSV文件:

  • 第一个组件:选择你那10条记录的主数据CSV,配置好文件路径、分隔符(一般是逗号),记得勾选「第一行是字段名」,确保city字段被正确识别。
  • 第二个组件:选择包含映射关系的CSV,同样配置文件路径、分隔符,确认cityshortnamecity两个字段被加载。
步骤3:通过Merge Join实现城市简称映射

从左侧「连接」分类里拖一个Merge Join组件到画布,然后把两个CSV输入组件的输出箭头都连到这个Merge Join上:

  1. 双击打开Merge Join配置窗口:
    • 选择连接类型:如果你的主数据里所有城市简称都能在映射表里找到,用内连接就够;如果有部分简称不在映射表里,想保留这些记录的话,选左外连接
    • 设置关联字段:在「主步骤」里选主数据的city字段,「查找步骤」里选映射表的cityshortname字段,让它们做匹配。
    • 配置输出字段:勾选你需要保留的主数据所有字段,再勾选映射表的city字段(建议重命名为full_city_name,避免和主数据原来的city字段重名)。
步骤4:配置输出并验证结果

从左侧「输出」分类拖一个CSV文件输出组件到画布,把Merge Join的输出箭头连到这个组件上:

  • 配置输出文件的路径和文件名,勾选「第一行是字段名」。
  • 在字段列表里选择你最终需要的字段(比如去掉原来的city简称字段,只保留全称字段,或者两者都保留)。

配置完成后,点击画布上方的运行按钮,等待转换执行完成。打开输出的CSV文件,检查城市简称是否已经替换成对应的全称。

可选方案:用Lookup in stream组件实现映射

如果你的映射表数据量比较小,也可以用Lookup in stream组件来实现:

  • 把映射表CSV的输出连到Lookup in stream的「查找步骤」,主数据CSV的输出连到「主步骤」。
  • 配置查找字段:主数据的city对应映射表的cityshortname,然后选择要返回的city全称字段。
  • 后续同样用CSV文件输出组件导出结果。
一些注意事项
  • 确保两个文件里的城市简称完全匹配:大小写、空格、特殊字符都要一致,不然会出现匹配失败的情况。
  • 如果用左外连接后出现空值的全称字段,可以再加一个Replace in string组件,把空值替换成原简称或者自定义的提示文本(比如「未找到对应城市」)。
  • 配置CSV输入时,如果字段里包含特殊字符或者分隔符,记得勾选「引用字段」选项,避免解析错误。

内容的提问来源于stack exchange,提问作者Abhishek

火山引擎 最新活动