Pentaho Data Integration如何截取首个逗号前的字符串?
在Pentaho Data Integration中实现类似SUBSTRING_INDEX的功能
嘿,这个需求我之前也碰到过,在PDI里完全能实现和SQL SUBSTRING_INDEX(technician, ',', 1)一模一样的效果,给你分享两个简单好用的方法:
方法一:使用Calculator组件结合strtok函数
这是最直接的方式,PDI内置的字符串分割函数刚好适配你的需求:
- 把Calculator组件拖到你的转换流程里,放在Excel Input组件之后
- 打开Calculator的配置界面,点击「Add new field」:
- 填写新字段名(比如
cleaned_technician) - 函数分类选「String」,找到并选择
strtok函数 - 参数依次设置为:
- 你要处理的源字段(比如
technician) - 分隔符:
","(注意要加引号) - 分割后的取数位置:
1
- 你要处理的源字段(比如
- 填写新字段名(比如
- 如果想直接覆盖原字段而非新建,选择「Replace field」选项,选中源字段即可
这个函数的贴心之处在于:如果源字段里没有逗号,会直接返回原字段内容,不会出现报错。
方法二:使用Split Fields组件
如果你更喜欢可视化的分割操作,这个组件也能快速搞定:
- 拖入Split Fields组件,和Excel Input组件建立连接
- 在配置界面里:
- 选择要处理的源字段
- 分隔符输入
"," - 勾选「Limit split count」,并设置值为
1 - 给分割后的新字段命名(比如
cleaned_technician)
- 配置完成后,这个组件会自动提取第一个逗号之前的内容到新字段,后面的部分直接丢弃
两种方法都能完美实现你要的效果,选哪个全看你个人习惯啦~
内容的提问来源于stack exchange,提问作者vincenzo chiarini
相关产品推荐
相关产品推荐

