[Kettle] 记录处理

1.排序记录

排序是对数据中的无序记录,按照自然或客观规律,根据关键字段大小递增或递减的次序,对记录重新排列的过程

数据源

2019年11月月考数学成绩(Kettle数据集3).xlsicon-default.png?t=N7T8https://download.csdn.net/download/Hudas/88521681

 2019年11月月考数学成绩部分截图

需求:为了得出学生的成绩排名,使用【排序记录】组件,对学生的成绩从低到高排序

1.1 建立【排序记录】转换工程

使用Ctrl+N快捷键,创建【排序记录】转换工程,单击【核心对象】选项卡,展开【输入】对象,选中【Excel输入】组件,并拖曳到右边工作区中,设置参数,导入"2019年11月月考数学成绩.xls"文件,预览数据,如下图所示

从上图可以看出"数学"字段数据处于无序状态

1.2 设置【排序记录】组件参数

在【排序记录】转换工程中,单击【核心对象】选项卡,展开【转换】对象,选中【排序记录】组件,并拖曳至右边工作区中

由【Excel输入】组件指向【排序记录】组件,建立节点连接(长按shift键并点击鼠标左键在两者间进行连接),如下图所示

双击【排序记录】组件,弹出【排序记录】对话框,如下图所示

【排序记录】对话框中的参数说明如下表所示

字段参数说明

步骤名称

表示排序组件名称,在单个转换工程中,名称必须唯一

默认值是【排序记录】组件名称

排序目录

表示排序时存放临时文件的目录,可以直接键盘设置,也可以单击【浏览(B)…】按钮,设置为计算机上已存在的目录

默认值是当前系统标准临时文件目录%%java.io.tmpdir%%

临时文件前缀表示临时文件前缀名称,排序时使用临时文件,可以加快和方便排序。当行数超过指定的排序大小时候,系统将使用临时文件排序行。默认值为out
排序缓存大小

表示存放在内存的记录数,存储在内存中的记录越多,排序过程就越快。默认值为1000000

未使用内存限值(%)表示未使用内存的百分比限值。排序时,如果发现可用的空闲内存少于指定的数字,系统会将数据分页到磁盘。默认值为空
压缩临时文件表示需要临时文件来完成排序时,是否压缩该临时文件。默认值为空
仅仅传递非重复的记录

表示是否启用仅向输出流传递唯一的记录。默认值为空

字段名称

指定排序的字段名称,可用多个字段进行组合排序。可以直接键盘输入,也可以单击输入框,从下拉框中选中输入流的字段

还可以点击对话框中的【获取字段】按钮,获取所有字段进行编辑,保留需要排序的关键字段,删除不参加排序的字段

升序

对指定的字段制订排序方向(升序/降序),选项有:是、否
大小写敏感指定的排序时是否区分大小写,选项有:是、否

Sort base on current locale?

是否根据当前位置排序,选项有:是、否

Collator Strength

指定排序器强度,选项有:0、1、2、3

Presorted?

是否进行预排序,选项有:是、否

 在【排序目录】对话框中,设置参数,将"数学"字段的数据按照从低到高进行排序,步骤如下

(1) 确定组件名称,【步骤名称】参数保留默认值"排序记录"

(2) 确定排序目录,【排序目录】参数保留默认值"%%java.io.tmpdir%%"

(3) 设置排序字段参数,在【字段】表中,对各字段的参数进行设置

此时完成【排序目录】组件参数的设置,如下图所示

1.3 预览结果数据

在【排序记录】排序工程中,单击【排序记录】组件,再单击工作区上方的"预览这个转换"图标

预览数据,展示排序后的数据,如下图所示

2.去除重复记录

由于输入或其他错误的原因,数据文件中可能出现两条或多条数据完全相同的记录,这些相同的记录称为重复记录

重复的记录属于"脏数据",会造成数据统计和分析不正确,必须清洗掉重复记录

数据源

期考成绩(Kettle数据集4).xlsicon-default.png?t=N7T8https://download.csdn.net/download/Hudas/88527254?spm=1001.2014.3001.5501需求:由于在"期考成绩.xls"文件中,发现存在序号不同,但是学号、各科考试成绩完全相同的记录,所以需要使用【去除重复记录】组件,去除这些重复的数据

2.1 建立【去除重复记录】转换工程

在去除重复记录(去重)之前,必须使用关键字段对数据记录进行排序,确定哪些记录属于重复记录

使用Ctrl+N快捷键,创建【去除重复记录】转换工程,单击【核心对象】选项卡,展开【输入】对象,选中【Excel输入】组件,并拖曳到右边工作区中,设置参数,导入"期考成绩.xls"文件,接着创建【排序记录】组件,并由【Excel输入】组件指向【排序记录】组件,建立节点连接,如下图所示

双击【排序记录】组件,对"学号"字段按照升序进行排序后预览数据 

如上图所示,除了"序号"字段数据外,"学号"分别为"201709023","201709028","201709030"的数据各有两条记录,并且对应的"语文""数学"等考试科目和"创建时间"的数据也相同

2.2 设置【去除重复记录】组件参数

在【去除重复记录】转换工程中,单击【核心对象】选项卡,展开【转换】对象,选中【去除重复记录】组件,并拖曳至右边工作区中,并由【排序记录】组件指向【去除重复记录】组件,建立节点连接,如下图所示

双击【去除重复记录】组件,弹出【去除重复记录】对话框,如下图所示

【去除重复记录】组件的有关参数说明如下表所示

参数名称说明
步骤名称

表示去除重复组件名称,在单个转换工程中,名称必须唯一

默认值是【去除重复记录】的组件名称

增加计数器到输出

表示选择此选项时,计数器计算重复记录的条数,并将计数器字段添加至输出流中

选择后才能设置【计数器字段】参数名称

默认值为空

计数器字段

表示对重复记录计数的计数器字段名称,【增加计数器到输出】勾选时才能设置

默认值为空

重定向重复记录

表示选择此选项时,将重复的记录作为错误处理并将其重定向到组件的错误流。如果不选择,重复的记录将被删除。选择后才能编辑【错误描述】内容,内容是指当组件检测到重复记录时显示的错误处理描述

默认值为空

错误描述表示对出现重复记录现象的内容描述,【重定向重复记录】为√ 时才能设置。默认值为空
用来比较的字段表示用来比较是否重复记录的字段,用来比较的字段可以有多个,用一个表来分行设置不同的字段参数,字段参数如下:
字段名称:用来比较的字段,默认值为空
忽略大小写:比较字段是否区分大小写,选项有Y、N,默认值为空

在【去除重复记录】对话框中,设置参数,去除学号相同的记录,步骤如下

(1) 确定组件名称,【步骤名称】参数保留默认值"去除重复记录"

(2) 确定计数器字段,【增加计数器到输出】设置为"",【计数器字段】设置为"重复行数"

(3) 确定错误描述,【重定向重复记录】设置为"√",【错误描述】设置为"重复输入"

(4) 设置用来比较的字段参数,在【用来比较的字段】表中,【字段名称】设置为"学号",【忽略大小写】设置为"N"

此时完成【去除重复记录】组件参数的设置,如下图所示

2.3 预览结果数据

在【去除重复记录】转换工程中,单击【去除重复记录】组件,再单击工作区上方的"预览这个转换"图标,即可预览去除重复记录后的数据,如下图所示

从上图可以看出原先有55行数据记录,删除了重复的3条记录以后,还剩下52条数据记录

3.替换NULL值

在Kettle转换过程中,默认情况下,会将空值当作NULL值处理

如果数据类型字段出现NULL值,那么在计算时就会出现错误

数据源

2019年11月月考英语成绩(Kettle数据集6).xlsicon-default.png?t=N7T8https://download.csdn.net/download/Hudas/88530387?spm=1001.2014.3001.5501需求:学号为"201709007"的同学没有参加考试,根据规定考试分数将按零分处理,需要使用【替换NULL值】组件,使用"0"替换该同学的英语考试分数

3.1 建立【替换NULL值】转换工程

使用Ctrl+N快捷键,创建【替换NULL值】转换工程,单击【核心对象】选项卡,展开【输入】对象,选中【Excel输入】组件,并拖曳到右边工作区中,设置参数,导入"2019年11月月考英语成绩.xls"文件,预览数据,"学号"字段数据为"201709007"所对应的"英语"字段数据为<null>,如下图所示

在【替换NULL值】转换工程中,单击【核心对象】选项卡,展开【应用】对象,选中【替换NULL值】组件,并拖曳至右边工作区中,由【Excel输入】组件指向【替换NULL值】组件,建立节点连接,如下图所示

3.2 设置【替换NULL值】组件参数

双击【替换NULL值】组件,弹出【替换NULL值】对话框,如下图所示

【替换NULL值】组件的有关参数说明如下表所示

参数名称说明
作业名称表示【替换NULL值】组件名称,在单个转换工程中,名称必须唯一,默认值是【替换NULL值】组件名称
选择字段表示对所有记录的、指定字段的NULL值进行值替换的方式,默认值为空
选择值类型表示对所有记录、指定的数据类型的NULL值进行替换的方式,默认值为空
替换所有字段的null值表示对所有记录、所有字段的NULL值进行替换方式,默认的替换方式,具体如下
① 值替换为:表示用来替换NULL的值,默认值为空
② 设置空字符串:表示是否设置空字符串,默认值为空
③ 掩码(日期):表示日期字段的掩码格式,默认值为空

字段

表示勾选【选择字段】参数后,使用【字段】表设置参数,具体如下
① 字段:表示输入流的字段名称,单击下拉框选择设置
② 值替换为:表示要替换NULL的值
③ 转换掩码(日期):表示日期字段的掩码格式,默认值为空
④ 设置空字符串:表示是否设置空字符串,选项有:是、否,默认值为空

值类型

表示勾选【选择值类型】参数后,使用【值类型】表设置参数,具体如下
① 类型:表示选中数据类型,单击下拉框选择设置
② 值替换为:表示要替换NULL的值
③ 转换掩码(日期):表示日期字段的掩码格式,默认值为空
④ 设置空字符串:表示是否设置空字符串,选项有:是、否,默认值为空

在【替换NULL值】对话框中,设置参数,用"0"替换"英语"字段的数据"null",步骤如下

(1) 确定组件名称,【步骤名称】参数保留默认值"替换NULL值"

(2) 选择【选择字段】方式设置字段参数,【选择字段】设置为"√",并在【字段】表中,对字段的参数进行设置

此时完成【替换NULL值】组件参数的设置,如下图所示

3.3 预览结果数据

在【替换NULL值】转换工程中,单击【替换NULL值】组件,再单击工作区上方的"预览这个转换"图标,预览替换NULL值后的数据,如下图所示

4.过滤记录

在数据处理时,往往要对数据所属类别、区域和时间等进行限制,将限制范围外的数据过滤掉

数据源

2019年10月年级月考数学成绩(Kettle数据集7).xlsicon-default.png?t=N7T8https://download.csdn.net/download/Hudas/88530845?spm=1001.2014.3001.5501

需求:为了统计2班的考试人数和成绩,需要对"2019年10月年级月考数学成绩.xls"文件,使用【过滤记录】组件,过滤掉不是2班的数据

4.1 建立【过滤记录】转换工程

使用Ctrl+N快捷键,创建【过滤记录】转换工程,单击【核心对象】选项卡,展开【输入】对象,选中【Excel输入】组件,并拖曳到右边工作区中,设置参数,导入"2019年10月年级月考数学成绩.xls"文件,预览数据,如下图所示,文件包括有1班、2班的数据

2019年10月年级月考数学成绩部分数据

在【过滤记录】转换工程中,单击【核心对象】选项卡,展开【流程】对象,选中【过滤记录】组件,并拖曳至右边工作区中,由【Excel输入】组件指向【过滤记录】组件,建立节点连接,如下图所示 

4.2 设置【过滤记录】组件参数

双击【过滤记录】组件,弹出【过滤记录】对话框,如下图所示

【过滤记录】组件的有关参数说明如下表所示

参数名称说明
步骤名称表示【过滤记录】组件名称,在单个转换工程中,名称必须唯一,默认值为【过滤记录】组件名称
发送true数据给步骤表示当条件为true时,记录被发送到此组件(步骤)。此参数也可以在与下一个组件(步骤)进行节点连接时设置,默认值为空
发送false数据给步骤表示当条件为false时,记录被发送到此组件(步骤)。此参数也可以在与下一个组件(步骤)进行节点连接时设置,默认值为空
条件

表示过滤条件的表达式,在【条件】表达式输入框中设置表达式中各个参数,默认值为空

条件表达式

条件表达式是由函数(运算符)构成的一个赋值语句

格式:<字段><函数><表达式>

格式的中间为函数,左边为字段,右边是值表达式,如a=5、a>(b+2)、a<=10等

为了方便读者理解,在【条件】表达式输入框中,增加了条件表达式设置的指向说明,如下图所示

增加子条件

单击+号图标可以增加子条件,这时在【条件】表达式输入框中,显示出增加的条件表达式,初次生成的是一条null=[ ]的空表达式,如下图所示

单击null=[ ]空表达式,可对该表达式进行设置,如下图所示,单击"向上"按钮可以向上切换回条件表达式

右键单击子条件表达式,弹出右键快捷菜单,可以对子条件进行编辑、删除、复制、粘贴、移动位置等操作,如下图所示

选择输入流的字段

单击"选择输入流字段"指向的【<field>】字段输入框,弹出【字段】对话框,列出输入流字段表,选择需要过滤的字段

选择函数

单击【=】函数输入框,弹出【函数】对话框,并列出过滤比较函数,有关过滤比较函数的说明如表所示

函数名称说明
=表示等于,判断表达式字段是否等于右边的值,是比较【函数】默认值
<>表示不等于,判断表达式字段是否不等于右边的值
<表示小于,判断表达式字段是否小于右边的值
<=表示小于等于,判断表达式字段是否小于等于右边的值
>表示大于,判断表达式字段是否大于右边的值
>=表示大于等于,判断表达式字段是否大于等于右边的值
REGEXP表示正则表达式,判断表达式字段是否与模式匹配
IS NULL表示为空,判断表达式字段是否为空
IS NOT NULL表示不为空,判断表达式字段是否不为空
IN LIST表示在列表中,判断表达式字段是否在指定的list列表中
CONTAINS表示包含,判断表达式字段是否包含右边的值
STARTS WITH表示以什么开始,判断表达式字段是否以右边的值开始
ENDS WITH表示以什么结束,判断表达式字段是否以右边的值结束
LIKE表示包括,判断表达式字段是否包括右边的值
TRUE

表示真,判断表达式字段是否为真 

选择比较字段

单击"选择要比较的字段"指向的【<field>】字段输入框,弹出类似的【字段】对话框,选中要比较的字段,单击【确定】按钮,确定要比较的字段

输入比较的值

单击"输入要比较的值"指向的【<value>】值输入框,弹出【E输入一个值】对话框,输入比较的值

有关【E输入一个值】对话框中的参数的说明如下表所示

参数名称说明
类型

表示值的类型(默认值为String)

类型选项有:BigNumber、Binary、Boolean、Date、Integer、Internet Address、Number、String、Timestamp

表示值,可以是具体值或表达式,默认值为1
转换格式表示值的转换格式,默认值为空
长度表示值的长度,默认值为-1
精度

表示值的精度,默认值为-1

提示Tips:需要注意,若设置"输入要比较的值"指向的【<value>】值参数,则不能设置"选择要比较的字段"指向的【<field>】字段参数,二者只能选其一

条件取反

鼠标移向 "条件取反"指向的输入框,显示出黑底红字的"NOT",单击该输入框并移开鼠标,此时显示为白底黑字的"NOT",表示条件取反,即若表达式为True,则条件为False

若表达式为False,则条件为True

"条件取反"指向的输入框为一个奇偶输入框,单击取反,再次单击则取正

在【过滤记录】对话框中,设置参数,过滤掉不是2班的数据,步骤如下

(1) 确定组件名称,【步骤名称】参数保留默认值"过滤记录"

(2) 在【条件】表达式输入框中设置表达式中各个参数

① 单击左边的【<field>】字段输入框,弹出【字段】对话框,列出输入流字段表,选择需要过滤的字段,选中"班级"字段

② 单击 "比较函数"指向的【=】函数输入框,弹出【函数】对话框,选择"="的过滤比较函数,单击【确定】按钮,确认过滤比较函数

③ 单击【<value>】输入框,弹出【E输入一个值】对话框,对参数进行设置

此时完成【过滤记录】组件参数的设置,如下图所示

4.3 预览结果数据

在【过滤记录】转换工程中,单击【过滤记录】组件,再单击工作区上方的"预览这个转换"图标,预览过滤记录后的数据,如下图所示

5.值映射

在数据处理系统中,为了加快处理速度、减少内存和存储空间消耗,往往使用数字、字母,或它们的组合表示真实的数据涵义,例如,用"1"和"0"分别表示性别,难以直接看懂

数据源

学籍信息(Kettle数据集8).xlsicon-default.png?t=N7T8https://download.csdn.net/download/Hudas/88533475?spm=1001.2014.3001.5501需求:在某校学生的"学籍信息.xls"文件中,性别字段数据分别用"1"或"0"表示。为了更加直观,一目了然地读懂学生的学籍信息,需要使用【值映射】组件,还原其对应的值"男"或"女"

5.1 建立【值映射】转换工程

使用Ctrl+N快捷键,创建【值映射】转换工程,单击【核心对象】选项卡,展开【输入】对象,选中【Excel输入】组件,并拖曳到右边工作区中,设置参数,导入"学籍信息.xls"文件,预览数据,如下图所示,当前数据中,"性别"字段的数据,以"0.0"或"1.0"表示

注意:博主在这边将"性别"字段类型设置成String

在【值映射】转换工程中,单击【核心对象】选项卡,展开【转换】对象,选中【值映射】组件,并拖曳至右边工作区中,由【Excel输入】组件指向【值映射】组件,建立节点连接,如下图所示

5.2 设置【值映射】组件参数

双击【值映射】组件,弹出【值映射】对话框,如下图所示

【值映射】组件的有关参数说明如下表所示

参数名称说明
步骤名称

表示【值映射】组件名称,在单个转换工程中,名称必须唯一。默认值是【值映射】组件名称

使用的字段名表示需要进行值映射的输入流字段名称。默认值为空
目标字段名表示进行值映射后输出流新字段名称,为空时覆盖原来字段。默认值为空
不匹配时默认值表示不匹配字段值数据时的默认值。默认值为空
字段值

表示需要进行值映射的字段值参数表,使用【字段值】表设置参数,有关参数如下
① 源值:映射字段的源数据值,默认值为空
② 目标值:映射后的目标数据值,默认值为空

将"性别"字段中"1.0","0.0"数据分别用"男","女"映射替换,对参数进行设置

此时完成【值映射】组件参数的设置

5.3 预览结果数据

在【值映射】转换工程中,单击【值映射】组件,再单击工作区上方的"预览这个转换"图标,预览值映射后的数据,如下图所示

6.字符串替换

字符串替换与值映射非常类似,不同之处,字符串替换的字段值是字符串,值映射的字段可以是多种数据类型

数据源

学籍信息(Kettle数据集8).xlsicon-default.png?t=N7T8https://download.csdn.net/download/Hudas/88533475?spm=1001.2014.3001.5501需求:由于在"学籍信息.xls"文件中,学籍数据用"H"或"J"表示,需要使用【字符串替换】组件,分别还原其对应的值"户籍生"和"借读生"

6.1 建立【字符串替换】转换工程

使用Ctrl+N快捷键,创建【字符串替换】转换工程,单击【核心对象】选项卡,展开【输入】对象,选中【Excel输入】组件,并拖曳到右边工作区中,设置参数,导入"学籍信息.xls"文件,预览数据,如下图所示,当前数据中,"学籍"字段的数据,以"H"或"J"表示

在【字符串替换】转换工程中,单击【核心对象】选项卡,展开【转换】对象,选中【字符串替换】组件,并拖曳至右边工作区中,由【Excel输入】组件指向【字符串替换】组件,建立节点连接,如下图所示

6.2 设置【字符串替换】组件参数

双击【字符串替换】组件,弹出【字符串替换】对话框,如下图所示

【字符串替换】组件的有关参数说明如下表所示

参数名称说明
步骤名称表示【字符串替换】组件名称,在单个转换工程中,名称必须唯一。默认值是【字符串替换】组件名称
字段表示对将要进行字符串替换的字段参数,使用一个【字段】表对字段参数进行设置
输入流字段表示要进行字符串替换的输入流字段。默认值为空
输出流字段

表示进行字符串替换后的输出流新字段,为空时覆盖原来要进行替换的输入流字段,默认值为空

使用正则表达式表示是否使用正则表达式,选项有:Y、N。默认值为空
搜索表示是否搜索此字符串的匹配值,默认值为空
使用…替换表示要替换匹配值的字符串数据,默认值为空
设置为空串?表示是否设置空字符串,选项有:Y、N。默认值为空
使用字段值替换表示使用一个字段值替换字符串,默认值为空
整个单词匹配表示是否要整个单词都匹配,选项有:Y、N。默认值为空
大小写敏感表示是否区分大小写,选项有:Y、N。默认值为空
In Unicode表示是否设置Unicode,选项有:Y、N。默认值为空

在【字符串替换】对话框中,设置参数,对输入数据中"学籍"字段中数据"H"和"J",分别使用"户籍生"和"借读生"进行替换,步骤如下

(1) 确认组件名称,【步骤名称】保留默认值,设置为"字符串替换"

(2) 确定字段参数,对【字段】表的参数进行设置

此时完成【字符串替换】组件参数的设置,如下图所示

6.3 预览结果数据

在【字符串替换】转换工程中,单击【字符串替换】组件,再单击工作区上方的"预览这个转换"图标,预览字符串替换后的数据,如下图所示

7.字符串操作

在数据输入过程中,有时候不小心输入的多余的空格、错误的字符等,字符串操作是指将数据中不需要的字符处理掉

数据源

学籍信息(Kettle数据集8).xls icon-default.png?t=N7T8https://download.csdn.net/download/Hudas/88533475?spm=1001.2014.3001.5501需求:在“学籍信息.xls”文件中,学生学籍信息的籍贯字段数据前后有多余的空格,需要使用【字符串操作】,去除这些空格,规范学籍信息

7.1 建立【字符串操作】转换工程

使用Ctrl+N快捷键,创建【字符串操作】转换工程,单击【核心对象】选项卡,展开【输入】对象,选中【Excel输入】组件,并拖曳到右边工作区中,设置参数,导入"学籍信息.xls"文件,预览数据,如下图所示,当前数据中,"籍贯"字段有一些数据前面存在空格

在【字符串操作】转换工程中,单击【核心对象】选项卡,展开【转换】对象,选中【字符串操作】组件,并拖曳至右边工作区中,由【Excel输入】组件指向【字符串操作】组件,建立节点连接,如下图所示

7.2 设置【字符串操作】组件参数

双击【字符串操作】组件,弹出【String operations】对话框,如下图所示

【字符串操作】组件的有关参数说明如下表所示

参数名称说明
Step name

表示【字符串操作】组件名称,在单个转换工程中,名称必须唯一

默认值是【字符串操作】组件名称

In stream field

表示输入流中要进行字符串操作字段名称,可以单击【Get fields】按钮,获取字段名称

默认值为空

Out stream field

表示输出流目标字段,进行字符串操作后的目标字段,当为空时,覆盖原字段

默认值为空

Trim type

表示修剪处理的类型,选项有none、left、right、both

默认值为空

Lower/Upper

表示进行字母大小写处理,选项有none、lower、upper

默认值为空

Padding

表示填充处理,选项有none、left、right

默认值为空

Pad char

表示使用填充字符处理,输入要填充的字符

默认值为空

Pad Length

表示填充的长度,输入要填充的长度

默认值为空

InitCap

表示是否初始化,选项有是、否

默认值为空

Escape

表示转义或取消XML、HTML、CDATA和SQL等转义

默认值为空

Digits

表示对数字是返回删除,还是什么都不做,选项有none、only、remove

默认值为空

Remove Special character

表示删除特殊字符

默认值为空

在【String operations】对话框中,设置参数,删除"籍贯"字段数据中的空格,步骤如下

(1) 确定组件名称,【Step name】参数保留默认值"字符串操作"

(2) 设置字符串操作的字段参数,在【The fields to process】表中设置字段参数,在表第1行,单击【In stream field】输入框,在输入流字段中选中"籍贯"字段,单击【Trim type】输入框,在选项中选中"both",其他参数使用默认值

此时完成【字符串操作】组件参数的设置,如下图所示

7.3 预览结果数据

在【字符串操作】转换工程中,单击【字符串操作】组件,再单击工作区上方的"预览这个转换"图标,预览字符串操作后的数据,如下图所示

8.分组

在进行数据统计中,往往要对类别、区域、型号等范围进行统计,分组是对指定的字段或字段集合的数据进行分组统计

数据源

2019年10月月考英语成绩(Kettle数据集5).xlsicon-default.png?t=N7T8https://download.csdn.net/download/Hudas/88529906?spm=1001.2014.3001.5501需求:为了解各班级和学生的学业情况,需要对"2019年10月月考英语成绩.xls"文件,使用【分组】组件,统计各班的人数和平均分数

8.1 建立【分组】转换工程

在分组之前,必须使用关键字段对数据记录进行排序,确定哪些记录分组在一起

使用Ctrl+N快捷键,创建【分组】转换工程,单击【核心对象】选项卡,展开【输入】对象,选中【Excel输入】组件,并拖曳到右边工作区中,设置参数,导入"2019年10月月考英语成绩.xls"文件,接着创建【排序记录】组件,并由【Excel输入】组件指向【排序记录】组件,建立节点连接,如下图所示

双击【排序记录】组件,对"班级"字段按照升序进行排序后预览数据

在【分组】转换工程中,单击【核心对象】选项卡,展开【统计】对象,找到【分组】组件,并拖曳到右边工作区中,并由【排序记录】组件指向【分组】组件,建立节点连接,如下图所示

8.2 设置【分组】组件参数

双击【分组】组件,弹出【分组】对话框,如下图所示

【分组】组件有关参数说明如下表所示

参数名称说明
步骤名称

表示分组的组件名称,在单个转换工程中,名称必须唯一

默认值是【分组】的组件名称

包括所有的行

表示是否包括所有记录。使用勾选框设置参数,希望在输出中包含所有记录,则勾选,只想输出聚合记录,则不勾选

默认值为空

排序目录

表示指定存储临时文件的目录。分组的记录数超过5000个时,必须指定一个目录。此参数只有勾选【包括所有的行】参数后才能设置

默认值是系统的标准临时目录%%java.io.tmpdir%%

临时文件前缀

表示命名临时文件的文件前缀,只有勾选【包括所有的行】参数后才能设置

默认值为grp

添加行号,在每个组中重新启动表示是否添加一个记录号,在每个组中从1重新启动。勾选此参数时所有记录都包含在输出中,且每个记录都有一个记录号。此参数终于勾选【包括所有的行】参数后才有效默认值为空
行号列名

表示要为每个新组添加记录的字段名称

默认值为空

总返回一个结果行

表示是否即使没有输入记录,也返回结果记录。当没有输入记录时,返回计数0。如果只想有输入时才输出结果记录,则此参数不勾选,默认值为空

构成分组的字段

表示分组的字段参数。分组的字段可以有多个,使用一个【构成分组的字段】表设置【分组字段】参数,可以设置多个分组字段。需要注意的是,如果没有分组的字段,那么该表留空来计算整个数据集的聚合函数

默认值为空

聚合表示聚合字段的参数,使用一个【聚合】表来设置聚合字段名称、聚合方法和输出结果新字段名称
名称表示聚合字段的名称,输出结果的新字段名称,默认值为空
Subject表示对其使用聚合方法的对象字段,默认值为空
类型

表示聚合方法。在下拉框中选取聚合方法,默认值为空。聚合方法如下
1. 求和
2. 平均:求平均
3. Median:中间值
4. Percentile(linear interpolation):百分位(线性插值)
5. 最小:求最小值
6. 最大:求最大值
7. 个数:数量(N)
8. 使用,连接同组字符串:连接由,(逗号)分隔的字符串
9. 第一个非空值
10. 最后一个非空值

11. 第一个值(包括null))
12. 最后一个值(包括null))
13. 累积和(对所有行)
14. 累积平均值(对所有行)
15. 标准偏差
16. 使用指定字符连接同组字符串
17. Number of distinct values:不同值的数量
18. Number of rows(without field argument):记录数(没有字段参数)
19. Standard deviation(sample):标准偏差(样本)
20. Percentile(nearest-rank method):百分位(nearest-rank方法)

表示聚合的值,默认值为空

在【分组】对话框中,设置参数,分组统计各班的人数和平均分数,步骤如下

(1) 设置组件名称,【步骤名称】参数采用默认值"分组"

(2) 确定分组字段,在【构成分组字段】表的第1行,【分组字段】设置为"班级"

(3) 确定聚合字段并设置参数,对【聚合】表的参数进行设置

此时完成【分组】组件参数的设置,如下图所示

8.3 预览结果数据

在【分组】转换工程中,单击【分组】组件,再单击工作区上方的"预览这个转换"图标,预览数据分组后的数据,如下图所示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/145032.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Mysql5.7创建远程账号和新建数据库

文章目录 Mysql5.7创建远程账号和新建数据库创建远程账号新建默认数据库默认数据库指定字符集数据库写法一写法二 查看数据库列表查看数据库的定义声明 Mysql5.7创建远程账号和新建数据库 创建远程账号 CREATE USER mm% IDENTIFIED WITH mysql_native_password BY mm1122;Que…

将算力普惠到底阿里云开启金秋云创季: 数百款爆品享专属特惠价(阿里云2023年双十一)

11月9日消息&#xff0c;国内领先云计算厂商阿里云近日在官网推出了“金秋云创季”活动&#xff0c;为开发者和企业带来了多重福利&#xff0c;包括上云必备的2C2G 3M固定带宽云服务器仅需99元/年、上百款核心云产品的专属特惠价、最高5580元的满减券大礼包&#xff0c;不断降低…

绕过PPL机制窃取凭证

Mimikatz窃取凭证攻击 正常权限cmd情况下mimikatz是无法直接提权的,所以窃取密码更是不行的。 但管理员权限下的mimikatz是可以获取到主机登陆密码的。 PPL安全机制 在此之前,用户只需要使用SeDebugPrivilege令牌权限即可获取任意进程的所有访问权限;随后Windows8.1 在此…

Ant Design Vue Select下拉框内容显示不全问题解决

默认情况下&#xff0c;当下拉框的内容长度过长时&#xff0c;会被折叠&#xff0c;这比较影响用户体验&#xff0c;查了下文档&#xff0c;看到有一个属性可以解决这个问题&#xff1a; 没设置的下拉效果&#xff1a; 设置完之后&#xff1a;dropdownMatchSelectWidth{false}&…

pytest自动化测试两种执行环境切换的解决方案

一、痛点分析 在实际企业的项目中&#xff0c;自动化测试的代码往往需要在不同的环境中进行切换&#xff0c;比如多套测试环境、预上线环境、UAT环境、线上环境等等&#xff0c;并且在DevOps理念中&#xff0c;往往自动化都会与Jenkins进行CI/CD&#xff0c;不论是定时执行策略…

Ora2Pg工具迁移Oracle到openGauss

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

2022年12月 Python(五级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 下面哪个语句正确定义了元组类型数据tuple1?( ) A: tuple1=[“张三”,“李四”,“王五”] B: tuple1=(“张三”;“李四”;“王五”) C: tuple1=(张三,李四,王五) D: tuple1=(“张三…

C语言从入门到精通之【printf和scanf函数】

printf()是输出函数&#xff0c;scanf()是输入函数&#xff0c;但是它们的工作原理几乎相同。两个函数都使用格式字符串和参数列表。 printf()函数的格式 printf( 格式字符串, 待打印项1, 待打印项2,…);待打印项1、待打印项2等都是要打印的项。它们可以是变量、常量&#xff…

【论文阅读】GAIN: Missing Data Imputation using Generative Adversarial Nets

论文地址&#xff1a;[1806.02920] GAIN: Missing Data Imputation using Generative Adversarial Nets (arxiv.org)

应用层——HTTPS协议

文章目录 一.HTTPS协议介绍二.关于加密1.什么是"加密"2.为什么要加密3.常见的加密方式4.数据摘要 && 数据指纹 三.HTTPS的工作过程探究1.方案1 —— 只使用对称加密&#xff08;明文传输不可取&#xff09;2.方案2 —— 只使用非对称加密&#xff08;仅单向安…

【数据分享】2015-2023年我国地级市逐月房价数据(Excel格式/Shp格式)

房价是一个城市发展程度的重要体现&#xff0c;一个城市的房价越高通常代表这个城市越发达&#xff0c;对于人口的吸引力越大&#xff01;因此&#xff0c;房价数据是我们在各项城市研究中都非常常用的数据&#xff01;之前我们分享过我国主要城市2023年房价数据&#xff08;可…

Vue基础必备掌握知识点-Vue的指令系统讲解(二)

Vue指令系统继续讲解 v-for 作用:基于数据进行循环&#xff0c;多次渲染整个元素 数据类型:数组.对象.数字。。。 遍历数组语法&#xff1a;v-for"(item,index)" in 数组 item:表示每一项 index:则是表现下标 注意:v-for中的key值&#xff0c;key属性唯一的…

【算法|动态规划 | 区间dp No.2】AcWing 1068.环形石子合并

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【AcWing算法提高学习专栏】【手撕算法系列专栏】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&a…

深度学习实战59-NLP最核心的模型:transformer的搭建与训练过程详解,手把手搭建与跑通

大家好,我是微学AI,今天给大家介绍一下深度学习实战59-NLP最核心的模型:transformer的搭建与训练过程详解,手把手搭建与跑通。transformer是一种基于自注意力机制的深度学习模型,由Vaswani等人在2017年的论文《Attention is All You Need》中提出。它最初被设计用来处理序…

SpringCloudalibaba2

一、nacos简介 Nacos&#xff08;全称为"Nano Service"&#xff09;是一个用于动态服务发现、配置管理和服务元数据的开源平台。它由阿里巴巴集团于2018年开源&#xff0c;并逐渐成为云原生应用中的重要组件之一。 Nacos提供了以下主要功能&#xff1a; 1. 服务发…

【论文阅读】CTAB-GAN: Effective Table Data Synthesizing

论文地址&#xff1a;[2102.08369] CTAB-GAN: Effective Table Data Synthesizing (arxiv.org) 介绍 虽然数据共享对于知识发展至关重要&#xff0c;但遗憾的是&#xff0c;隐私问题和严格的监管&#xff08;例如欧洲通用数据保护条例 GDPR&#xff09;限制了其充分发挥作用。…

IDEA接口调试插件不好找?这款免费用!

IDEA插件市场中的API调试插件不是收费&#xff08;Fast Request &#xff09;就是不好用&#xff08;apidoc、apidocx等等&#xff09;今天给大家介绍一款国产的API调试插件&#xff1a;Apipost-Helper&#xff0c;完全免费且好看好用&#xff01; 这款插件由Apipost团队开发的…

java springboot2.7 JSR303与Hibernate进行Bean的数据校验

我们如果对数据能进行格式校验 做个安全检查就会容易很多 其实 各个系统中都必然后拥有数据校验&#xff0c;这也不是新东西 J2EE规范中JSR303就规范定义了一组有关数据校验的API 首先 我们在 pom.xml 中 注入依赖 <dependency><groupId>javax.validation</gr…

异常与中断(一)

使用生活实例引入中断 假设有个大房间里面有小房间&#xff0c;婴儿正在睡觉&#xff0c;他的妈妈在外面看书。 问&#xff1a;这个母亲怎么才能知道这个小孩醒&#xff1f; 过一会打开一次房门&#xff0c;看婴儿是否睡醒&#xff0c;然后接着看书一直等到婴儿发出声音以后再…