1、Row Normaliser,将一行多列数据转换为多行一列数据。
输入数据流:
计算器配置如下:
与计算器相连接的excel输出如下:
Row Normaliser,设置如下,
与Row Normaliser连接的Excel输入如下
2、Split field to rows 字段拆分,一个单元拆分成多行
输入流字段:
Split field to rows 设置:
结果展示
3、拆分字段,将一个字段拆分成多个,一个字段拆分成多列
Generate Rows输入流,
拆分字段,设置,一个单元拆分成三列
拆分字段连接的Excel输出如下,一行三列转换成三行一列
Row Nomaliser配置,及Excel输出,
4、行转列,一列多行转变为多列一行,前面xml部分已经用过。
总结: 行转列:一列多行转变为多列一行,需要分组字段及标识,以xml解析为典型
Row Normaliser:将一行多列数据转换为多行一列数据。
Split field to rows 字段拆分,一个单元拆分成多行。
拆分字段,一个单元拆分成三列
kettle中denormalizer(列转行)的使用
需要列转行的数据分为两种:有主键和无主键,先说无主键的
转以前的内容
转以后的内容
看到了吧,转过来了,好来张整体流程图
开始分析:
第一个图标打开后为
这是第一步里面主要的一步,这里配置好了就可以进行第二步了。
因为没有主键,所以要给城市那一列添加一个相同的主键,这样数据在转成行的时候就可以转到同一行了,如果主键不同,转成行后,每一个主键为一行,这不是我们想要的。
打开列转行的界面为
图中的dummy是我们前一步添加的常量,关键字段选择城市,关键字段值就为城市的value,数据字段为人数的key,所谓目标字段就是在转成行以后你希望看到的名字。
打开结果输出图标
好了,到这里就都配置完了,点执行按钮,你就会看到文中开头的结果了。
有主键的就不说了,那个比无主键的要简单,因为有主键的数据直接转就行,如果不明白可以留言。