练习一

获取数据

首先我们需要将这份csv格式的数据文本下载到本地,点击此处下载

这份数据内容如下图所示:

1691204685165

需求

  • 使用BaskAdapt加载这份csv格式数据。
  • 拆分Transaction Code字段,提取出该字段中位于开始位置的交易代码信息(即开头部分的英文字符)。

    • 这个交易代码用于标识是哪家银行处理的这次交易。
    • 重命名拆分出来的新字段为Bank。
  • 设置Online or In-person字段的值:将值为1改为Online,2改为In-Person。
  • 将日期改为星期。
  • 产生三个输出,以展示不同的信息。

    • 输出一:每家银行的交易金额合计。
    • 输出二:按银行、星期几和交易类型进行分组统计交易金额的合计(这里的交易类型指的是Online or In-person字段中的Online或In-Person)。
    • 输出三:按银行或客户代码分组统计交易金额。

输出

  • 输出一:每家银行的交易金额合计,结果如下图所示:

    1691205668013

    共3行数据

  • 输出二:按银行、星期和交易类型进行分组统计交易金额的合计,结果如下图所示:

    1691205709402

    共42行数据

  • 输出三:按银行或客户代码分组统计交易金额,结果如下图所示:

    1691205769005

    共33行数据

实现视频

操作步骤

加载文件

首先创建一个数据处理流程文件,将这个CSV文件导入到流程中,再添加到画布中,如下图所示。

1691217524148

选中bank_data.csv这个输入数据的开始节点,因为在后续的流程中不需要file_name字段,所以在下方属性面板中将file_name字段名前的复选框勾选取消,如下图:

1691463960091

清理数据

在bank_data.csv节点后添加一个清理节点。如下图:

1691464131041

拆分Transaction Code字段

对Transaction Code列值进行拆分,我们目标是得到以-分隔内容的第一部分,也就是银行名称信息。选中Transaction Code列,点击工具栏上方的1691464191098按钮,在弹出窗口中拆分分隔符输入-,选择拆分 1 个字段,也就是只拆分出一个字段,最后将拆分出来的字段重命名为Bank,如下图:

1691464445226

上面我们是通过拆分字段功能实现获取银行信息,当然我们也可以对Transaction Code列去除数字,再执行去除标点符号操作实现获取银行信息,大家有兴趣可以自己尝试一下,这里不再赘述。

设置Online or In-person字段的值

需要将该字段中值为1改为Online,2改为In-Person,这个操作也比较简单,我们只需要在对应列上直接编辑对应的值就好,如下图所示:

1691464851233

更改value字段类型为整数

为了实现针对value字段的合计功能,我们还需要在这个清理节点上将value字段的数据类型改为整数,如下图所示:

1691465193375

聚合数据

为了实现需求中需要的三种输出,我们需要添加三个聚合节点来分别实现三种类型的数据输出。

聚合一:每家银行的交易金额合计

在清理节点添加一个聚合节点,并将Bank字段和value字段添加到聚合列中,设置Bank为分组,value为合计,如下图所示:

1691465324168

完成后,就可以看到需求中第一个输出就已经完成。

聚合二:按银行、星期和交易类型进行分组统计交易金额的合计

同样,在清理后添加一个聚合节点,将Bank字段、Online or In-Person字段、Transaction Date字段以及value字段添加到聚合列中,并更改Transaction Date字段的分组方式为星期,如下图所示:

1691465610747

在将Transaction Date字段的分组方式为星期后,引擎会抽取该列日期值对应的星期部分为一个具体数字,0-6分别代表星期日到星期六,所以我们还将星期中对应的0-6转换成具体的星期名称,操作如下图所示:

1691466458834

将星期具体数字转换成具体星期名称,需要选中Transaction Date字段,然后点击工具栏上的1691466611086按钮,在弹出窗口中输入新值表达式即可,该表达式内容如下:

if([Transaction Date]==0){
  return "Sunday"
}else if([Transaction Date]==1){
  return "Monday"
}else if([Transaction Date]==2){
  return "Tuesday"
}else if([Transaction Date]==3){
  return "Wednesday"
}else if([Transaction Date]==4){
  return "Thursday"
}else if([Transaction Date]==5){
  return "Friday"
}else if([Transaction Date]==6){
  return "Saterday"
}else if([Transaction Date]==0){
  return "Sunday"
}

可以看到这段表达式内容比较简单,就是判断值,然后输出具体星期名称。

到这里,需求中要求的第二个输出完成。

聚合三:按银行或客户代码分组统计交易金额

再次在清理节点后添加一个聚合节点,将Bank字段、Customer Code字段以及value字段添加到聚合列中,如下图所示:

1691466850340

这个输出比较简单,添加三个字段到聚合列中就好。

总结

三个聚合输出都已完成,后续可以根据需要添加输出节点将三个聚合产生的数据输出到具体的数据库表中,这里不再赘述。

results matching ""

    No results matching ""