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,所谓目标字段就是在转成行以后你希望看到的名字。

打开结果输出图标

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

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

kettle——入门操作-行列转换(行转列,字段拆分)的更多相关文章

  1. SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段值)

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 方法一:使用拼接SQL,静态列字段: 方法二:使用拼接SQL, ...

  2. Python学习随笔:使用xlwings设置和操作excel多行多列数据以及设置数据字体颜色填充色对齐方式的方法

    ☞ ░ 前往老猿Python博文目录 ░ 在前面老猿的文章中,<Python学习随笔:使用xlwings读取和操作Excel文件>.<Python学习随笔:使用xlwings读取和操 ...

  3. C#动态操作DataTable(新增行、列、查询行、列等)

    public void CreateTable() { //创建表 DataTable dt = new DataTable(); //1.添加列 dt.Columns.Add("Name& ...

  4. C#操作EXCEL常见操作集合(行高,列宽,合并单元格,单元格边框线)

    private _Workbook _workBook = null; private Worksheet _workSheet = null; private Excel.Application _ ...

  5. Pandas常用操作 - 删除指定行/指定列

    1. 删除指定行 new_df = df.drop(index='行索引') new_df = df.drop('行索引', axis='index') new_df = df.drop('行索引', ...

  6. Kettle入门--作业和转换的使用

    本来想在centos7下部署的,发现因为java版本的问题,无法成功部署,无奈,转到windows平台(后来找到解决方法了,在centos7系统下yum install webkitgtk* -y 就 ...

  7. 获取dataset结果集的第一行第一列字段

    DataSet fileNameDs = DbHelper.excuteSqlResultDataSet(strSql); ) { DataTable fileNameDt = fileNameDs. ...

  8. C#中DataTable行转列示例

    将下面表(1)格式的数据转换为表(2)格式的数据.很明显,这是一个行转列的要求,本想在数据库中行转列,因为在数据库中行转列是比较简单的,方法可以参考本站SQLServer中(行列转换)行转列及列转行且 ...

  9. c# 行转列

    将下面表(1)格式的数据转换为表(2)格式的数据.很明显,这是一个行转列的要求,本想在数据库中行转列,因为在数据库中行转列是比较简单的,方法可以参考本站SQLServer中(行列转换)行转列及列转行且 ...

随机推荐

  1. PHP自定义XML类实现数组到XML文件的转换

    这两天在公司写和各应用商店应用内搜索的接口,大致就像百度应用内搜索这样的东西,具体可以点下面的链接查看. 百度应用内搜索 有的应用商店需要JSON格式的数据,所以我只需要用下面的语句就可以返回对方服务 ...

  2. PHP中exit()与die()的区别

    PHP手册:die()Equivalent to exit(). 说明:die()和exit()都是中止脚本执行函数:其实exit和die这两个名字指向的是同一个函数,die()是exit()函数的别 ...

  3. 解决MySQL workbench的Can't connect to MySQL server on '127.0.0.1'(10061)问题

    如题,今天打开MySQL时,出现了这种问题,无法连接到数据库 问题原因:The error (2003) Can't connect to MySQL server on 'server' (1006 ...

  4. ViewPager + Fragment 实现主界面底部导航栏

    1. 四个类似的Frament布局 tab_main_fragment.xml <LinearLayout xmlns:android="http://schemas.android. ...

  5. Alpha阶段贡献分配规则

    作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2244] 分配规则: 1.每人有基础分3分. 2.每参加一次组内会议及活动加0. ...

  6. tensorflow命令行参数:tf.app.flags.DEFINE_string、tf.app.flags.DEFINE_integer、tf.app.flags.DEFINE_boolean

    tf 中定义了 tf.app.flags.FLAGS ,用于接受从终端传入的命令行参数,相当于对Python中的命令行参数模块optpars(参考:python中处理命令行参数的模块optpars)做 ...

  7. MarkDown格式作业模板

    发布的随笔可复制下面的MarkDowm模板 注意事项 标题第XX次作业替换成相应的第一次作业.第二次作业...... 代码托管的链接一定要换成自己的项目 码云提交历史截图必须是自己每周的提交截图 #& ...

  8. .NET/C# 使用反射调用含 ref 或 out 参数的方法

    使用反射,我们可以很容易地在运行时调用一些编译时无法确定的属性.方法等.然而,如果方法的参数中包含 ref 或 out 关键字的时候,又该怎么调用呢? 本文将介绍如何反射调用含 ref 或 out 关 ...

  9. html5 data属性的使用

    html5 data属性定义和用法 <ul> <li data-animal-type="bird">Owl</li> <li data- ...

  10. Pgsql和Mysql的对比

    工作中用过这两个数据库,但都不是太深入,仅限于用而已,但给我留下的印象就是Pgsql更好些,因为这两个库我都遇到过数据丢失的问题,前者我通过网上方法加自己的判断有惊无险的恢复了,而后者搜索各种资料加问 ...