You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pentaho Data Integration:填充StoreName字段空值为前值

在Pentaho 9.0中填充StoreName字段空值为上一个非空值

Replace in String步骤无法实现这个需求——它仅针对单条记录的字符串内容做替换,不具备上下文(上一行数据)处理能力。你可以通过以下两种步骤实现需求:

方法一:Modified Java Script Value步骤

  1. 向转换中添加Modified Java Script Value步骤,连接到你的数据源输出。
  2. 在脚本编辑框中输入以下代码,通过全局变量维护上一个有效的门店名称:
    if (typeof prevStoreName === 'undefined') {
        var prevStoreName = '';
    }
    
    if (StoreName && StoreName !== '') {
        prevStoreName = StoreName;
    } else {
        StoreName = prevStoreName;
    }
    
  3. 关键设置:进入转换的设置界面,取消勾选「Enable parallel execution」,确保行按原始顺序处理,避免并行导致的顺序错乱。

方法二:User Defined Java Expression步骤

  1. 添加User Defined Java Expression步骤到数据流中。
  2. 选择直接覆盖StoreName字段,输入如下Java表达式:
    private static String lastValidStore = "";
    
    if (StoreName == null || StoreName.isEmpty()) {
        return lastValidStore;
    } else {
        lastValidStore = StoreName;
        return StoreName;
    }
    
  3. 同样需关闭转换的并行执行,保证行处理顺序正确。

注意事项

  • 必须确保数据流的行顺序与Excel原始顺序一致,若之前有排序、分组等打乱顺序的步骤,需调整流程先保留原始顺序。
  • 若数据流存在分支,全局变量会在分支间共享,可能导致填充错误,这种情况建议先完成空值填充再做分支处理。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 06:04:54