练习五
本次练习的数据还是之前使用过的银行交易数据,点击下载该数据文件。这次练习着眼于数据的分析计算,使用LOD表达式,以聚合技术为基础,使得最终用户可以更轻松的对数据进行分析。
输入数据结构
此次练习的csv文件数据结构如下图所示:
需求
- 用BaskAdapt加载这个名为bank_data.csv的文件。
- 使用字段拆分功能,将Transaction Code字段中第一部分的银行名称信息拆分出来,重命名拆分出来的列名为Bank。
- 创建一个名为Month的计算字段,从Transaction Date字段中取出该日期中包含的月份信息,以英文名形式显示月份名。
- 将原Transaction Date字段删除,同时将Month字段改名为Transaction Date字段。
- 将Value字段类型改为整数。
- 添加一个聚合节点,添加Bank以及Transaction Date字段进行分组,添加Value字段对分组后的数据进行合计;从而生成每行记录中包含每个银行下每个月份的交易金额合计值。
- 添加一个清理节点,创建一个名为Bank Rank per Month的字段,根据Transaction Date字段中包含的月份进行分块,再对Value字段的值进行排名。
- 实现该功能需要将Partition和OrderBy表达式配合使用,Partition表达式根据Transaction Date字段中包含的月份进行分块,再用OrderBy表达式对Value字段用Rank函数进行排名显示。
- 排名要求从大到小编排序号,因此OrderBy表达式中要采用DESC倒序方式。
- 创建一个名为Avg Rank per Bank的计算字段,内容是利用上一步的Bank Rank per Month字段生成每家银行的平均排名。
- 使用Fixed表达式先对Bank字段进行分组,再使用Avg函数对Bank Rank per Month字段求平均值。
- 创建一个名为Avg Transaction Value per Bank的计算字段,计算生成每个排名的平均交易金额。
- 还是使用Fixed表达式,先对Bank Rank per Month的字段进行分组,然后使用Avg函数对分组结果中Value字段计算平均值,得到的结果就是每个排名的平均交易金额。
输出
输出效果如下图所示:
共6个字段,36行数据。