etl实现字段值相加

本文介绍了一种使用Kettle进行ETL操作的具体实现方法。通过示例代码展示了如何读取输入字段、调用外部Java库进行数据处理,并将处理后的数据输出到下一个步骤。具体涉及了字段操作、参数获取及调用自定义Java类等功能。
摘要由CSDN通过智能技术生成

数据库USERS表:

etl步骤:

(2)

(3)

其中java代码为:

    import test.Test;
     
    public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException
    {
        Object[] r = getRow();
        if (r == null) {
            setOutputDone();
            return false;
        }
        if (first)
        {
            first = false;
        } 
        // It is always safest to call createOutputRow() to ensure that your output row's Object[] is large
        // enough to handle any new fields you are creating in this step.
        //r = createOutputRow(r, outputRowSize);    
        /* TODO: Your code here. (See Sample)         
        / Get the value from an input field
        String foobar = get(Fields.In, "a_fieldname").getString(r);   
        foobar += "bar";       
        // Set a value in a new output field
        get(Fields.Out, "output_fieldname").setValue(r, foobar);   
        */
         //获取参数
        // String AGEField = getParameter("ID");        
        String ID = get(Fields.In, "ID").getString(r); //输入参数  
         get(Fields.Out, "ID").setValue(r, ID); //输出参数
        //调用jar
        String foobar = get(Fields.In, "NAME").getString(r); //输入参数
        foobar += Test.getMyName("我是谁的水");
        get(Fields.Out, "NAME").setValue(r, foobar);
//获取参数
        // String AGEField = getParameter("ID");        
        //String ID = get(Fields.In, "ID").getString(r); //输入参数  
         get(Fields.Out, "aa").setValue(r, "xx"); //输出参数
        // Send the row on to the next step.
        putRow(data.outputRowMeta, r);
        return true;

}

打成jar包丢到kettle目录下:

执行结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值