1.新建Java测试类,导出Jar包,放在kettle目录中的libext文件中
- package test;
- public class Test{
- public static final String getMyName(String name){
- return name+"12345";
- }
- }
2.抽数据--经过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);
- */
- //调用jar
- String foobar = get(Fields.In, "ENAME").getString(r); //输入参数
- foobar += Test.getMyName("我是谁的水");
- get(Fields.Out, "ENAME").setValue(r, foobar);
- //获取参数
- String AGEField = getParameter("AGE");
- get(Fields.Out, "AGE").setValue(r, AGEField); //输出参数
- // Send the row on to the next step.
- putRow(data.outputRowMeta, r);
- return true;
- }
来源:http://programmer.blog.51cto.com/2859493/1164002