如何在Pentaho中以特定字符串“NF”为分隔符创建条件列?
在Pentaho中基于“NF”分隔符创建条件列的解决方案
以下是几个直接可行的实现方法,适配不同场景:
方法1:使用Formula步骤提取拆分片段
如果只需要拆分后提取特定位置的片段,直接用Formula步骤的字符串函数即可:
- 添加Formula步骤到转换,连接源输入
- 新建目标列,比如
first_part,公式写:strtok([你的源字段名], "NF", 1) - 若要提取第二部分,公式改为:
strtok([你的源字段名], "NF", 2)
说明:
strtok函数的三个参数依次为:源字符串、分隔符、目标片段的索引(从1开始计数)
方法2:使用Split Columns步骤批量拆分
如果需要一次性拆分出所有片段为独立字段,用Split Columns步骤更高效:
- 拖拽Split Columns步骤到转换,关联源数据
- 配置面板中:
- 选择要拆分的目标字段
- 在「分隔符」输入框中填入
NF - 勾选「拆分到多个字段」,手动设置生成的字段名称(比如
segment_1、segment_2) - 若字段中存在多个“NF”,可通过「最大拆分次数」限制生成的字段数量
方法3:处理带条件的拆分场景(仅当存在“NF”时拆分)
如果需要区分“包含NF”和“不包含NF”的行,分别处理:
- 添加Filter Rows步骤,设置过滤条件为
[你的源字段名] CONTAINS "NF",将数据流拆分为两个分支 - 对包含“NF”的分支,用上述Split Columns或Formula步骤完成拆分
- 对不包含“NF”的分支,直接保留原字段内容
- 最后用Append Streams步骤将两个分支的数据流合并
内容的提问来源于stack exchange,提问作者Felipe
相关产品推荐
相关产品推荐

