kettle——入门操作-行列转换(行转列,字段拆分)
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——入门操作-行列转换(行转列,字段拆分)的更多相关文章
- SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段值)
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 方法一:使用拼接SQL,静态列字段: 方法二:使用拼接SQL, ...
- Python学习随笔:使用xlwings设置和操作excel多行多列数据以及设置数据字体颜色填充色对齐方式的方法
☞ ░ 前往老猿Python博文目录 ░ 在前面老猿的文章中,<Python学习随笔:使用xlwings读取和操作Excel文件>.<Python学习随笔:使用xlwings读取和操 ...
- C#动态操作DataTable(新增行、列、查询行、列等)
public void CreateTable() { //创建表 DataTable dt = new DataTable(); //1.添加列 dt.Columns.Add("Name& ...
- C#操作EXCEL常见操作集合(行高,列宽,合并单元格,单元格边框线)
private _Workbook _workBook = null; private Worksheet _workSheet = null; private Excel.Application _ ...
- Pandas常用操作 - 删除指定行/指定列
1. 删除指定行 new_df = df.drop(index='行索引') new_df = df.drop('行索引', axis='index') new_df = df.drop('行索引', ...
- Kettle入门--作业和转换的使用
本来想在centos7下部署的,发现因为java版本的问题,无法成功部署,无奈,转到windows平台(后来找到解决方法了,在centos7系统下yum install webkitgtk* -y 就 ...
- 获取dataset结果集的第一行第一列字段
DataSet fileNameDs = DbHelper.excuteSqlResultDataSet(strSql); ) { DataTable fileNameDt = fileNameDs. ...
- C#中DataTable行转列示例
将下面表(1)格式的数据转换为表(2)格式的数据.很明显,这是一个行转列的要求,本想在数据库中行转列,因为在数据库中行转列是比较简单的,方法可以参考本站SQLServer中(行列转换)行转列及列转行且 ...
- c# 行转列
将下面表(1)格式的数据转换为表(2)格式的数据.很明显,这是一个行转列的要求,本想在数据库中行转列,因为在数据库中行转列是比较简单的,方法可以参考本站SQLServer中(行列转换)行转列及列转行且 ...
随机推荐
- JDK_源码
1.http://hg.openjdk.java.net/ (ZC:这个貌似像官网的样子,不知道 到底是不是...) 1.1.jdk8u_jdk8u_jdk_ 5b86f66575b7 _src_.h ...
- linux 前端部署
linux.conf user root; worker_processes ; #error_log logs/error.log; #error_log logs/error.log notice ...
- java中如何使用Junit测试
java中如何使用Junit测试 一.总结 一句话总结:a.单元测试的测试代码在test文件夹下,和源码不在同一个文件夹下 b.测试的类方法都以test开头,后面接要测试的类或者方法的名字 1.JUn ...
- Python——列表表达式
https://www.cnblogs.com/xuyuanyuan123/p/6718403.html
- UVALive-3126 Taxi Cab Scheme (DAG的最小路径覆盖)
题目大意:要给n个人安排车,已知每个人的出发时间和起点与终点,问最少需要安排几辆车才能完成任务. 题目分析:最小路径覆盖.如果送完a到目的地后能在b出发之前赶来接b,那么连一条有向边a->b,最 ...
- tflearn tensorflow LSTM predict sin function
from __future__ import division, print_function, absolute_import import tflearn import numpy as np i ...
- zookeeper的安装和部署
参考: https://testerhome.com/topics/11361 http://blog.csdn.net/lihao21/article/details/51778255 https: ...
- bzoj2631
题解: lct+链上修改 每一次修改的时候记录lazy标记 如果有了乘法,加法的lazy标记也要相应的随之变化 代码: #pragma GCC optimize(2) #include<bits ...
- LR 解压缩函数(wgzMemDecompressBuffer)失败 Code=-5
用LR做压力测试的时候有时会报错 “解压缩函数(wgzMemDecompressBuffer)失败 返回Code=-5”. Google了一把,也没有解决掉. 因为有些脚本运行时没有问题,感觉可能和请 ...
- js实现trim()方法
在面向对象编程里面去除字符串左右空格是很容易的事,可以使用trim().ltrim() 或 rtrim(),在jquery里面使用$.trim()也可以轻松的实现.但是在js中却没有这个方法.下面的实 ...