pejsidney

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(列转行)的使用

需要列转行的数据分为两种:有主键和无主键,先说无主键的

转以前的内容

wKioL1O1BCii1tTQAAB1oP7gAEA646.jpg

转以后的内容

wKiom1O1BGigsmI4AABdqF-P6BY429.jpg

看到了吧,转过来了,好来张整体流程图

wKiom1O1BKvQCyZdAABiJZ92XIY112.jpg

开始分析:

第一个图标打开后为

wKioL1O1BOehkwuZAAFMWEzeCC0178.jpg

这是第一步里面主要的一步,这里配置好了就可以进行第二步了。

因为没有主键,所以要给城市那一列添加一个相同的主键,这样数据在转成行的时候就可以转到同一行了,如果主键不同,转成行后,每一个主键为一行,这不是我们想要的。

打开列转行的界面为

wKiom1O1BjXSvMZ5AAF1B9VVmis798.jpg

图中的dummy是我们前一步添加的常量,关键字段选择城市,关键字段值就为城市的value,数据字段为人数的key,所谓目标字段就是在转成行以后你希望看到的名字。

打开结果输出图标

wKioL1O1BtHwS6w-AACx07ESEic244.jpg

好了,到这里就都配置完了,点执行按钮,你就会看到文中开头的结果了。

有主键的就不说了,那个比无主键的要简单,因为有主键的数据直接转就行,如果不明白可以留言。

分类:

技术点:

相关文章: