kettle中使用java代码模块

在kettle使用java代码模块需要注意的一些事项,以防忘记。

首先需要继承processRow方法,跟java的main方法类似,代码从这里开始执行,并且在里边读取跟保存变量。

public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws Exception
{

	Object[] r = getRow();

	if (r == null) {
	  setOutputDone();
	  return false;
	}
	
    r = createOutputRow(r, data.outputRowMeta.size());

    String appid = get(Fields.In, "appid").getString(r);
 	String appkey = get(Fields.In, "appkey").getString(r);
	String city_code = get(Fields.In, "city_code").getString(r);
	String date = get(Fields.In, "date").getString(r);

	Map body = new HashMap();
	body.put("city_code", city_code);
    body.put("date", date);

	String sign = signRequest(appid, body, appkey);

    get(Fields.Out,"sign").setValue(r,sign);
	
	logBasic("sign:"+sign);


    putRow(data.outputRowMeta, r);

	return true;
}
如上,前几行代码不变  读取变量使用 get(Fields.In, "appid");

保存变量使用get(Fields.Out,"sign").setValue(r,sign);

最后不要忘记putRow(data.outputRowMeta, r);及return true;


输入日志可以使用logBasic("sign:"+sign);


上面import java.util.*;

需要的jar包放入kettle安装目录的lib目录下

底下变量名称跟保存变量名称一样,如下图所示


  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值