You need to enable JavaScript to run this app.
导航

数据清洗

最近更新时间2023.11.16 16:38:20

首次发布时间2021.12.10 14:01:50

1. 概述

数据清洗,通常是指发现并纠正数据文件中可识别的错误,包括检查数据一致性,处理无效值和缺失值等。用户在完成数据输入之后,即可对输入数据进行进一步的数据清洗操作,本文将为您介绍数据清洗算子的功能。
alt

2. 功能介绍

2.1 字段设置

字段设置支持选择保留字段、设置字段类型、设置字段名称、设置字段排序。

image.png
并且提供了高级配置功能,支持一键进行目标字段名格式修改,如一键转大写、一键转小写、一键修复非法字符一键修正不规范数据,支持字段快捷排序,提高数据处理效率。

2.2 连接

支持创建多表间的连接关系。

  • 选择连接方式

  • 设置连接字段

  • 选择保留字段

image.png

2.3 合并行

用于合并多表数据。

操作面板

点击配置多表字段的匹配关系,注意仅相同格式的字段支持匹配,如字段格式不相同,请添加字段设置或计算列等算子处理字段格式后进行合并

处理示例

将不同表拖入画布,并点击其中一个需要合并的表,添加合并行节点;

image.png

点击其他需要合并的表右侧+按钮,拖拽至合并行算子左侧;

image.png

在页面下方配置匹配关系,并点击执行保存配置。

image.png

2.4 聚合

通过分组实现明细数据的聚合计算。

  • 选择分组,拖拽字段到“分组”

  • 选择聚合字段及方式: 拖拽字段到“聚合”,可更改聚合方式、设置聚合后的字段名称

image.png

2.5 计算列

计算列算子,支持自定义表达式,使用Spark函数处理上游字段并添加新字段。计算列的配置流程可以表格形式清晰展示新增的字段。

2.6 筛选行

选择字段,确认筛选条件,支持两层且/或逻辑关系。

image.png

2.7 列转行

将表头多列的指标转化到一列中展示,宽表变为高表。

实现效果

如学生的学科成绩表,语文、英语、数学三门学科分数各为一个字段

学生姓名学号性别语文数学英语
张三2014010201888888
李四2014010202877699
王五2014010203797578
小贾20140102046060
小一2014010205909796
小冰20140102068010095
小丁2014010207909998
小小2014010208789885

通过列转行,可以将三门课成绩合并为一个“成绩”字段,并添加“学科”字段区分各门科的成绩

学生姓名学号性别学科成绩
张三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

处理示例

在模型后添加列转行节点。

image.png

勾选需要转化的字段,本案例中选择“语文”、“数学”、“英语”。

image.png

分别为原来的字段名和字段数值设置转化后的列名,本案例中分别为“学科”和“成绩”。

image.png

执行节点,即可预览数据。

image.png

2.8 行转列

将一列的字段值转化为表头列,高表变为宽表。

实现效果

如学生的学科成绩表,有学科和成绩字段,记录了各门课的成绩。

学生姓名学号性别学科成绩
张三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

通过行转列,可以将学科成绩拆分成“语文成绩”、“数学成绩”、“英语成绩”三个字段,成为学生粒度的宽表

学生姓名学号性别语文数学英语
张三2014010201888888
李四2014010202877699
王五2014010203797578
小贾20140102046060
小一2014010205909796
小冰20140102068010095
小丁2014010207909998
小小2014010208789885

处理示例

在模型后添加行转列节点。

image.png

选择需要行转列的字段和对应的值字段,将其他需保留字段放入保留字段一栏。然后,点击配置新增列,也就是需要将“学科”拆分成哪几个字段,并填入对应的“学科”中的值。

该步骤还支持对值字段同时作聚合。

image.png

image.png

上图中红框内容即为执行行转列后的表结构。执行节点,即可预览数据。

image.png

image.png

2.9 数据拆分

数据拆分类算子,包含:数据拆分、拆分字段算子等,可以实现一份数据按照一定条件进行拆分,得到多份数据的效果。算子具体介绍请查看《数据拆分类算子》

2.10 字符串索引

一种类型转换算子,它将指定的属性的值映射成数值型索引,使得只能对数值型数据做处理的算子也可以对属性进行处理。该算子一般用于数据预处理,另外,不适合对于包含连续型数据的列执行该算子,如ID列。
alt
配置释义
将指定的属性的值映射成数值型索引,使得只能对数值型数据做处理的算子 也可以对属性进行处理。

参数设置
选择所有字符串类型属性建立索引:
点选此参数后,不需要手动设置需要索引的列,系统会自动选择所有字符串类型的属性值建立索引; 若不点选此参数,需要设置inputColumns(输入列 )参数,点击选择属性,将需要索引的属性名称添加到已选属性后,点击应用,就选择了一个属性子集。
alt

无效数据处理方式
可以选择忽略无效数据(skip),或者报错(error),也可以不做处理(keep)
alt
索引顺序
索引顺序表示字符串索引依照的规则,分为freque ncyDesc、frequencyAsc 、alphabetDesc和alphabetAsc四种。

  • frequencyDesc和frequencyAsc表示在某个字符串类型列中,以某个字符串出现频率进行排序,分别为降序和升序 。
  • alphabetDesc和alphab etAsc表示在某个字符串类型列中,以编码顺序进行排序,分别为降序和升序。

2.11 替换缺失值

数据模型中,可能存在一些字段存在空值。替换缺失值算子支持将缺失的数据替换为该列的最大/最小/平均值、最高频值或自定义值。
alt
配置释义
将缺失的数据替换为该列的最大/最小/平均值、最高频值或自定义值
字段设置

  • 待填充字段:缺少值填充会对选择的字段进行缺失值填充

  • 参数设置--填充规则:
    对选择的列执行相应的执行规则,数字列支持:0、最小值、最大值、中位数、平均值、众数、自定义值。字符类型支持最小值、最大值、自定义值

处理示例

如图所示,模型中存在科目成绩为空的数据。

image.png

添加替换缺失值节点,在下方节点设置中选择需要填充缺失值的字段和填充规则。

image.png

如果选择字段类型为数值,则填充规则可选0、最小值、最大值、中位数、平均值、众数、自定义值。字符类型支持最小值、最大值、自定义值;其他类型支持自定义值填充,如“其他”。

点击执行,可预览处理后数据。

2.12 自由排序

2.12.1 算子释义

选择某个排序字段,对全部数据或某种组合维度下进行排序,并可以选择根据排序截取前 K 值的数据,K 即为截取的排序序号,如按照分数取前 100 名,100 即为K值。
分组排序功能等同于采用窗口函数设置分区并排序的过程。

2.12.2 场景释义

存在包含商场、销售人员、销售日期、销售额的数据,先通过销售额进行整体排序,查看 Top100 的销售记录,则选中销售额作为排序字段,倒序取前 100 值;如果再对每个商场的每个销售人员的销售额进行排序,分别取出 Top100 的销售记录,则增加选中商场、销售人员作为分组字段。

alt

2.12.3 配置项说明

  • 排序方式: 支持全局排序和分组排序两种方式。全局排序是根据排序字段对全部数据进行排序,分组排序则是根据分组字段设置不同组合方式,对每种组合方式内的数据进行排序。

  • 分组字段: 设置排序的类型,即分别对每个分类下内容进行排序,如选择多个字段,则是根据多个字段的组合结果定义不同的类进行排序。

  • 排序字段: 排序的判断条件,如按照分数排序,则分数为排序字段,支持降序/升序两种排序方式:

    • 降序,即根据排序字段的结果倒序排列

    • 升序,即根据排序字段的结果顺序排序

  • 若开启【仅排序】按钮,则只需要根据排序方式和排序字段对数据进行排序标记,标记出具体的序号值。

  • 序号字段名称: 根据排序方式,将具体的序号存储下来,可定义该序号的具体函数,如分数排名字段。

注意

(1)K 值数量:默认 1000,仅支持整数,最低不能小于 1;
(2)分组字段和排序字段不可重复;
(3)分组字段以及排序字段都是仅支持数值型(整数、浮点数等)、字符串型、日期型、时间型、时间戳型,数组及 map 等特殊类型不支持。

2.13 去重

用于删除数据集中的重复行。

字段设置

待去重字段:根据选择的字段去重,如果被选择的字段行数有重复,随机保留一行

如果复选多个字段,则需多个字段均相同才会删除该条数据。

处理示例

以下图为例,上游数据包含6条数据,其中有三条数据的姓名为“张三”,有两条数据用户的姓名和电话完全相同;

image.png

当我们添加去重算子,并添加待去重字段为姓名与电话并执行当前节点;

image.png

我们可以发现去重后的数据共包含5条,其中序号为 2 的数据因为与1的姓名和电话均相同被删除。具体如下:

image.png

当我们添加去重算子,并添加待去重字段为姓名与电话并执行当前节点;

image.png

我们可以发现去重后的数据共包含 3 条,其中序号为 2,3 的数据因为与 1 的姓名均相同被删除。具体如下:

image.png