练习四
本次练习的数据存储于Excel文件当中,点击下载该文件。
该文件中存储的是银行每月获取的新用户信息,每个月的数据对应Excel文件中的Sheet,我们要做的工次就是将这12个月的数据合并起来。
在这份数据中,demographic列,也就是客户的人口统计信息存储方式为行,而不是列,这对于阅读来说不友好,因此,我们需要内容进行处理,将该列信息由行转为列。
数据格式
这份Excel中有12个Sheet页,分别代表每个月的数据,格式如下图所示:
需求
- 在BaskAdapt中导入这份Excel文件。
- 将所有Sheet页中的数据合并在一起,这12个Sheet页中的数据大部分字段都是相同的,所以可以进行合并操作。
- 由于拼写的差异,某些字段与预期不匹配,这里指的demographic列,可以看到有三个由于拼写问题导致的demographic列名显示略有不同,我们需要将这三个列合并成一个。
- 添加一个Joining Date字段,内容为2023年与每个sheet页名称构成的月份以及Joining Day这个字段组成的年月日信息
- 将Joining Date字段改成日期类型
- 使用转置节点,将demographic列与value列值进行行转列操作,value列作为聚合字段,聚合类型为最大值或最小值(任意选一种类型即可)。
- 创建计算字段AA,使用Fixed根据客户ID统计客户重复次数,将这个次数值作为新字段的值,找到这批数据中客户ID存在1条以上的数据。
- 创建计算字段BB,使用Partition根据客户ID分组,使用OrderBy对分组后的数据根据Joining Date字段进行产生排序编号,排序方式是由小到大,也就是正序,将此排序号作为该计算字段的值。
- 根据字段BB中产生的排序号,找到排序号大于1的行,只保留排序号等于1的记录,或者是排除排号不为1的记录,这样就实现了该批数据中每个客户ID对应的记录只有一条,且Joining Date字段的值取的是最小值。
- 删除用于标记记录创建的AA列和BB列
输出
处理好后的数据格式如下图所示:
结果共5个字段,989行数据。