如何在Pentaho中合并文本文件的跨行拆分数据?
在Pentaho中合并多行零散记录的实现方案
针对你提供的多行拆分的文本记录,可通过以下几个Pentaho组件组合实现合并,具体步骤如下:
1. 读取原始文本文件
使用Text File Input组件,选择**固定宽度(Fixed width)**格式读取文件(因为原始数据是按列宽对齐的),根据实际列宽配置每个字段的长度:
Code:对应第一列的宽度(比如5个字符)Prod_Name:对应第二列宽度(比如12个字符)Color:对应第三列宽度(比如8个字符)Stock:对应第四列宽度(比如10个字符)Price:对应第五列宽度(比如8个字符)
注意不要启用「wrapped lines」选项,让每一行都作为独立记录读取,空值会自动保留。
2. 填充空的Code字段
添加Fill Fields组件,将Code设为目标字段,选择**向下填充(Fill down)**模式。这样,后续行中空的Code会被上一行的有效值填充(比如第二行的空Code会被填充为201,第四行填充为202)。
3. 分组合并字段
使用Group by组件,按Code、Stock、Price这三个唯一标识字段进行分组:
- 对
Prod_Name字段,选择聚合函数为「Concatenate strings」,分隔符设为空格; - 对
Color字段,同样选择「Concatenate strings」,分隔符设为空格。
这样同属一个Code的多行Prod_Name和Color会被合并成单个字符串。
4. 输出整理后的数据
最后用Text File Output组件,按需要的格式输出结果,可调整列宽让内容对齐。
内容的提问来源于stack exchange,提问作者Alfian Irdandi
相关产品推荐
相关产品推荐

