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,所谓目标字段就是在转成行以后你希望看到的名字。
打开结果输出图标
好了,到这里就都配置完了,点执行按钮,你就会看到文中开头的结果了。
有主键的就不说了,那个比无主键的要简单,因为有主键的数据直接转就行,如果不明白可以留言。
转载于:https://www.cnblogs.com/pejsidney/p/8984133.html
kettle——入门操作-行列转换(行转列,字段拆分)相关推荐
- SQL查询案例:行列转换[行转列, 使用 CASE WHEN 处理]
行列装换--使用CASE WHEN 测试表与测试数据 CREATE TABLE TestRowCol ( name VARCHAR(10), place VARCHAR(10), valuw IN ...
- Kettle入门操作处理excel数据
kettle入门操作一:实现对excel表格转换 实验要求: 用Kettle完成下列实验,结果存储到MySql(或者CSV) 已知excel文件,包含列(姓名,年龄,身份证号码,性别,挂号日期时间,门 ...
- kettle——入门操作(行扁平化)
行扁平化,多行记录只有一个字段不同时,将不同字段转变为列.如下,最后解释一下原理及设计不足之处. 第一种情况,数据特点,flag为a的有两行,flag为b的有三行 行扁平化设置,扁平化后的目标字段,输 ...
- python xlwings追加数据_Python学习随笔:使用xlwings设置和操作excel多行多列数据以及设置数据字体颜色填充色对齐方式的方法...
一.关于整行整列数据读写的问题 在<Python学习随笔:使用xlwings读取和操作Excel文件>介绍了一次读写整行和整列的方法,整行数据写入时可以简单将读取的赋值语句交换一下等号左右 ...
- oracle拆分字段为多行,一句话实现字段拆分成多行
把表中某字段根据分隔符拆分成N个字符串后,再用这N个字符串把这一行演变成N行. 用SQL来解决这个问题非常烦琐! SQL里没有提供集合对象,不能提供根据拆分后的字符串集合把一行变成多行的操作.解决这个 ...
- C#动态操作DataTable(新增行、列、查询行、列等)
public void CreateTable() { //创建表 DataTable dt = new DataTable(); ...
- Kettle入门--作业和转换的使用
本来想在centos7下部署的,发现因为java版本的问题,无法成功部署,无奈,转到windows平台(后来找到解决方法了,在centos7系统下yum install webkitgtk* -y 就 ...
- python openpyxl 操作excel 插入行,列
import openpyxl wb = openpyxl.load_workbook("D:\村数据\实验.xlsx") ws = wb["Sheet1"] ...
- mysql拆分字符串后行转列_mysql行转列(拆分字符串场景)
一对多没有建立中间表的时候经常会采用分隔符的形式将"多"存储在"一"的一个字段里,这样做的代价是无法向一对多的时候那样直接关联查询,一般采用在程序中分割后分别查 ...
最新文章
- 实战之网马解密之shellcode篇
- ★如何证明自己不是精神病?
- 如果我们能够数字化,那么我们能够give away
- 贪心问题JAVA_java背包问题(贪心法)
- 「数据库系列一」为什么要用数据库?
- 追加 java,收藏 java追加写文件的方法
- appium + python 搭建
- python显示文件夹图片_如何显示文件夹中的随机图片(Python)
- 都道业务提升坑大事儿多,但英特尔云方案却说“简单”
- (二)双线性插值python实现
- 精选30个优秀的CSS技术和实例
- 程序员最艰巨的十大任务
- Sublime Text 3中配置编译和运行Java的两个方法
- 1031 查验身份证 (15 分) 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。
- 蓝牙模块 HC-06
- html5图片在线剪辑,Web端裁剪图片方法
- 全球排名前500的网站都是做什么的
- php的seeder是什么,Laravel学习笔记之Seeder填充数据小技巧
- db2的SQL1005N 在本地数据库目录或系统数据库目录中已经存在数据库别名
- mtp android7,Android7.0修改手机型号,mtp名称等
热门文章
- 【Linux】一步一步学Linux——VMware虚拟机三种网络模式详解(07)
- linux测试怎样看,linux入门篇:如何查看centos版本
- java stw_JVM STW里的no vm operation是怎么发生的
- java连接linux服务器执行shell命令(框架分析+推荐)
- 用友t3服务器文件丢失,服务器系统损坏数据恢复
- booloader编写
- 5 Git 分支 - 远程分支
- C++ std::condition_variable wait() wait_for() 区别
- 使用钉钉接收gitlab仓库的推送消息
- 将有序数组转为二叉搜索树