kettle开发篇-列转行-Day15

前言:

前面我们讲到了将一个字段拆分为多个字段,知道我们字段的横向分裂,从一个字段分为两个字段。学习了列拆分为多行,知道了怎么将一行的值拆分为多行,今天我们来学习一个列的高级操作,列传行,对于初学者来说,列传行也是一个比较高级的操作了,下面我们来看看列转行的语法和使用场景吧。

一、列转行

列转行就是如果数据一列有相同的值,按照指定的止损,把多行数据转换为一行数据。列转行以后会增加许多新的列,和拆分字段一样,原来被转换的列就会消失了。这就是列转行的原理。如下图所示,有七行数据分别代表张三周一至周日的工作小时,我们想实现的最终效果是,其中的星期被拆分为7列分别来存储工作小时。这样七行数据,最后就只剩下一行数据了。 image.png

需要注意的是列转行在转换前也需要进行排序操作,具体我们可以看到列转行主要包括关键字段即我们需要转换的字段,如星期,分组字段是我们相同的主字段,如姓名,目标字段是生成的字段名,数据字段是工作小时,即是目标字段的存储值。

image.png

二、任务

从EXCEL读取数据,按照姓名进行分组,把星期、工作小时从列转为行,并保存在EXCEL中。

image.png

最终我们的转换包括EXCEL输入、列转行、EXCEL输出。其中EXCEL输入和之前一样选择输入的EXCEL表格位置,并获取字段,重点阐述列转行,首先指定关键字段即我们需要转换的数据列,在我们的任务中就是星期字段,然后就是我们分组的字段即姓名,需要注意的是我们生成的新字段,根据数据来,数据中是周一至周日因此我们的列转行新字段名也分别是周一至周日。然后通过关键数据来查找。

image.png

image.png

需要注意的是我们做这个需求时,必须先排序字段值再进行列转行。好的,快去试试吧。 image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

他们叫我技术总监

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值