Janino是一个超小型,超快的Java编译器,Kettle可以利用Janino提供类和对象,定义Java表达式来计算新值。
在某年级的“2020年4月月考成绩.xls”文件中,为了了解学生的考试情况,需要采用利用Janino计算Java表达式组件,统计每个学生月考成绩的总分,并按照四舍五入的方法,计算每个学生的平均分。
1.打开kettle,创建转换
2.配置Excel输入控件
创建Excel输入组件和导入数据。创建【Excel输入】组件,如图所示,设置参数,导入“2020年4月月考成绩.xls”文件。
3. 配置利用Janino计算Java表达式控件
双击【利用Janino计算Java表达式】组件,弹出【User defined Java expression】对话框,如图所示。
在【User defined Java expression】对话框中,设置参数,编辑Java表达式,统计学生各科考试成绩总分,并按照四舍五入计算平均分,分别保存在“总分”“平均分”字段中,步骤如下。
(1) 设置组件名称。保留【步骤名称】默认值“利用Janino计算Java表达式”。
(2) 设置字段参数。在【Fields】表中设置参数,如图所示,此时完成【利用Janino计算Java表达式】组件的参数设置。
4.运行转换,查看结果
求出了每个学生的总分及平均分 。
附:【利用Janino计算Java表达式】组件的参数包含组件的基础参数和【Fields】表参数,有关参数说明如表所示。
参数名称 | 说明 | |
基础参数 | 步骤名称 | 表示利用Janino计算Java表达式组件名称,在单个转换工程中, 名称必须唯一。默认值是【利用Janino计算Java表达式】组件名称 |
Fields | New field | 表示数据流中的新字段名称。如果要覆盖现有字段, 那么在这里和“Replace value”选项中定义该字段。缺省值为空 |
Java expression | 表示Java表达式。缺省值为空 | |
Value type | 表示输出字段的数据类型。缺省值为空 | |
Length | 表示输出字段的长度的值。缺省值为空 | |
Precision | 表示输出字段的精度的值。缺省值为空 | |
Replace value | 表示要替换时,选择与“New field”名称相同的名称。 取值为Y、N,缺省值为空 |