数据清洗,通常是指发现并纠正数据文件中可识别的错误,包括检查数据一致性,处理无效值和缺失值等。用户在完成数据输入之后,即可对输入数据进行进一步的数据清洗操作,本文将为您介绍数据清洗算子的功能。
字段设置支持选择保留字段、设置字段类型、设置字段名称、设置字段排序。
并且提供了高级配置功能,支持一键进行目标字段名格式修改,如一键转大写、一键转小写、一键修复非法字符一键修正不规范数据,支持字段快捷排序,提高数据处理效率。
支持创建多表间的连接关系。
选择连接方式
设置连接字段
选择保留字段
用于合并多表数据。
操作面板
点击配置多表字段的匹配关系,注意仅相同格式的字段支持匹配,如字段格式不相同,请添加字段设置或计算列等算子处理字段格式后进行合并
处理示例
将不同表拖入画布,并点击其中一个需要合并的表,添加合并行节点;
点击其他需要合并的表右侧+按钮,拖拽至合并行算子左侧;
在页面下方配置匹配关系,并点击执行保存配置。
通过分组实现明细数据的聚合计算。
选择分组,拖拽字段到“分组”
选择聚合字段及方式: 拖拽字段到“聚合”,可更改聚合方式、设置聚合后的字段名称
计算列算子,支持自定义表达式,使用Spark函数处理上游字段并添加新字段。计算列的配置流程可以表格形式清晰展示新增的字段。
选择字段,确认筛选条件,支持两层且/或逻辑关系。
将表头多列的指标转化到一列中展示,宽表变为高表。
实现效果
如学生的学科成绩表,语文、英语、数学三门学科分数各为一个字段
学生姓名 | 学号 | 性别 | 语文 | 数学 | 英语 |
---|---|---|---|---|---|
张三 | 2014010201 | 男 | 88 | 88 | 88 |
李四 | 2014010202 | 女 | 87 | 76 | 99 |
王五 | 2014010203 | 男 | 79 | 75 | 78 |
小贾 | 2014010204 | 女 | 60 | 60 | |
小一 | 2014010205 | 男 | 90 | 97 | 96 |
小冰 | 2014010206 | 女 | 80 | 100 | 95 |
小丁 | 2014010207 | 男 | 90 | 99 | 98 |
小小 | 2014010208 | 女 | 78 | 98 | 85 |
通过列转行,可以将三门课成绩合并为一个“成绩”字段,并添加“学科”字段区分各门科的成绩
学生姓名 | 学号 | 性别 | 学科 | 成绩 |
---|---|---|---|---|
张三 | 2014010201 | 男 | 语文 | 88 |
李四 | 2014010202 | 女 | 语文 | 87 |
王五 | 2014010203 | 男 | 语文 | 79 |
小贾 | 2014010204 | 女 | 语文 | 60 |
小一 | 2014010205 | 男 | 语文 | 90 |
小冰 | 2014010206 | 女 | 语文 | 80 |
小丁 | 2014010207 | 男 | 语文 | 90 |
小小 | 2014010208 | 女 | 语文 | 78 |
张三 | 2014010201 | 男 | 数学 | 88 |
李四 | 2014010202 | 女 | 数学 | 76 |
王五 | 2014010203 | 男 | 数学 | 75 |
小贾 | 2014010204 | 女 | 数学 | |
小一 | 2014010205 | 男 | 数学 | 97 |
小冰 | 2014010206 | 女 | 数学 | 100 |
小丁 | 2014010207 | 男 | 数学 | 99 |
小小 | 2014010208 | 女 | 数学 | 98 |
张三 | 2014010201 | 男 | 英语 | 88 |
李四 | 2014010202 | 女 | 英语 | 99 |
王五 | 2014010203 | 男 | 英语 | 78 |
小贾 | 2014010204 | 女 | 英语 | 60 |
小一 | 2014010205 | 男 | 英语 | 96 |
小冰 | 2014010206 | 女 | 英语 | 95 |
小丁 | 2014010207 | 男 | 英语 | 98 |
小小 | 2014010208 | 女 | 英语 | 85 |
处理示例
在模型后添加列转行节点。
勾选需要转化的字段,本案例中选择“语文”、“数学”、“英语”。
分别为原来的字段名和字段数值设置转化后的列名,本案例中分别为“学科”和“成绩”。
执行节点,即可预览数据。
将一列的字段值转化为表头列,高表变为宽表。
实现效果
如学生的学科成绩表,有学科和成绩字段,记录了各门课的成绩。
学生姓名 | 学号 | 性别 | 学科 | 成绩 |
---|---|---|---|---|
张三 | 2014010201 | 男 | 语文 | 88 |
李四 | 2014010202 | 女 | 语文 | 87 |
王五 | 2014010203 | 男 | 语文 | 79 |
小贾 | 2014010204 | 女 | 语文 | 60 |
小一 | 2014010205 | 男 | 语文 | 90 |
小冰 | 2014010206 | 女 | 语文 | 80 |
小丁 | 2014010207 | 男 | 语文 | 90 |
小小 | 2014010208 | 女 | 语文 | 78 |
张三 | 2014010201 | 男 | 数学 | 88 |
李四 | 2014010202 | 女 | 数学 | 76 |
王五 | 2014010203 | 男 | 数学 | 75 |
小贾 | 2014010204 | 女 | 数学 | |
小一 | 2014010205 | 男 | 数学 | 97 |
小冰 | 2014010206 | 女 | 数学 | 100 |
小丁 | 2014010207 | 男 | 数学 | 99 |
小小 | 2014010208 | 女 | 数学 | 98 |
张三 | 2014010201 | 男 | 英语 | 88 |
李四 | 2014010202 | 女 | 英语 | 99 |
王五 | 2014010203 | 男 | 英语 | 78 |
小贾 | 2014010204 | 女 | 英语 | 60 |
小一 | 2014010205 | 男 | 英语 | 96 |
小冰 | 2014010206 | 女 | 英语 | 95 |
小丁 | 2014010207 | 男 | 英语 | 98 |
小小 | 2014010208 | 女 | 英语 | 85 |
通过行转列,可以将学科成绩拆分成“语文成绩”、“数学成绩”、“英语成绩”三个字段,成为学生粒度的宽表
学生姓名 | 学号 | 性别 | 语文 | 数学 | 英语 |
---|---|---|---|---|---|
张三 | 2014010201 | 男 | 88 | 88 | 88 |
李四 | 2014010202 | 女 | 87 | 76 | 99 |
王五 | 2014010203 | 男 | 79 | 75 | 78 |
小贾 | 2014010204 | 女 | 60 | 60 | |
小一 | 2014010205 | 男 | 90 | 97 | 96 |
小冰 | 2014010206 | 女 | 80 | 100 | 95 |
小丁 | 2014010207 | 男 | 90 | 99 | 98 |
小小 | 2014010208 | 女 | 78 | 98 | 85 |
处理示例
在模型后添加行转列节点。
选择需要行转列的字段和对应的值字段,将其他需保留字段放入保留字段一栏。然后,点击配置新增列,也就是需要将“学科”拆分成哪几个字段,并填入对应的“学科”中的值。
该步骤还支持对值字段同时作聚合。
上图中红框内容即为执行行转列后的表结构。执行节点,即可预览数据。
数据拆分类算子,包含:数据拆分、拆分字段算子等,可以实现一份数据按照一定条件进行拆分,得到多份数据的效果。算子具体介绍请查看《数据拆分类算子》。
一种类型转换算子,它将指定的属性的值映射成数值型索引,使得只能对数值型数据做处理的算子也可以对属性进行处理。该算子一般用于数据预处理,另外,不适合对于包含连续型数据的列执行该算子,如ID列。
配置释义
将指定的属性的值映射成数值型索引,使得只能对数值型数据做处理的算子 也可以对属性进行处理。
参数设置
选择所有字符串类型属性建立索引:
点选此参数后,不需要手动设置需要索引的列,系统会自动选择所有字符串类型的属性值建立索引; 若不点选此参数,需要设置inputColumns(输入列 )参数,点击选择属性,将需要索引的属性名称添加到已选属性后,点击应用,就选择了一个属性子集。
无效数据处理方式
可以选择忽略无效数据(skip),或者报错(error),也可以不做处理(keep)
索引顺序
索引顺序表示字符串索引依照的规则,分为freque ncyDesc、frequencyAsc 、alphabetDesc和alphabetAsc四种。
数据模型中,可能存在一些字段存在空值。替换缺失值算子支持将缺失的数据替换为该列的最大/最小/平均值、最高频值或自定义值。
配置释义
将缺失的数据替换为该列的最大/最小/平均值、最高频值或自定义值
字段设置
待填充字段:缺少值填充会对选择的字段进行缺失值填充
参数设置--填充规则:
对选择的列执行相应的执行规则,数字列支持:0、最小值、最大值、中位数、平均值、众数、自定义值。字符类型支持最小值、最大值、自定义值
处理示例
如图所示,模型中存在科目成绩为空的数据。
添加替换缺失值节点,在下方节点设置中选择需要填充缺失值的字段和填充规则。
如果选择字段类型为数值,则填充规则可选0、最小值、最大值、中位数、平均值、众数、自定义值。字符类型支持最小值、最大值、自定义值;其他类型支持自定义值填充,如“其他”。
点击执行,可预览处理后数据。
选择某个排序字段,对全部数据或某种组合维度下进行排序,并可以选择根据排序截取前 K 值的数据,K 即为截取的排序序号,如按照分数取前 100 名,100 即为K值。
分组排序功能等同于采用窗口函数设置分区并排序的过程。
存在包含商场、销售人员、销售日期、销售额的数据,先通过销售额进行整体排序,查看 Top100 的销售记录,则选中销售额作为排序字段,倒序取前 100 值;如果再对每个商场的每个销售人员的销售额进行排序,分别取出 Top100 的销售记录,则增加选中商场、销售人员作为分组字段。
排序方式: 支持全局排序和分组排序两种方式。全局排序是根据排序字段对全部数据进行排序,分组排序则是根据分组字段设置不同组合方式,对每种组合方式内的数据进行排序。
分组字段: 设置排序的类型,即分别对每个分类下内容进行排序,如选择多个字段,则是根据多个字段的组合结果定义不同的类进行排序。
排序字段: 排序的判断条件,如按照分数排序,则分数为排序字段,支持降序/升序两种排序方式:
降序,即根据排序字段的结果倒序排列
升序,即根据排序字段的结果顺序排序
若开启【仅排序】按钮,则只需要根据排序方式和排序字段对数据进行排序标记,标记出具体的序号值。
序号字段名称: 根据排序方式,将具体的序号存储下来,可定义该序号的具体函数,如分数排名字段。
注意
(1)K 值数量:默认 1000,仅支持整数,最低不能小于 1;
(2)分组字段和排序字段不可重复;
(3)分组字段以及排序字段都是仅支持数值型(整数、浮点数等)、字符串型、日期型、时间型、时间戳型,数组及 map 等特殊类型不支持。
用于删除数据集中的重复行。
字段设置
待去重字段:根据选择的字段去重,如果被选择的字段行数有重复,随机保留一行
如果复选多个字段,则需多个字段均相同才会删除该条数据。
处理示例
以下图为例,上游数据包含6条数据,其中有三条数据的姓名为“张三”,有两条数据用户的姓名和电话完全相同;
当我们添加去重算子,并添加待去重字段为姓名与电话并执行当前节点;
我们可以发现去重后的数据共包含5条,其中序号为 2 的数据因为与1的姓名和电话均相同被删除。具体如下:
当我们添加去重算子,并添加待去重字段为姓名与电话并执行当前节点;
我们可以发现去重后的数据共包含 3 条,其中序号为 2,3 的数据因为与 1 的姓名均相同被删除。具体如下: