kettle如何通过java增加数据行 最后更新时间:2024年03月11日 #### 前言 通过kettle开发过程中,需要通过动态添加新的数据行来为后面的任务做处理。 #### 解决思路 通过`owDataUtil.createResizedCopy`复制kettle的Row对象,再通过`putRow()`方法输出出去。 核心逻辑就是每次输出前复制一个r,利用复制的r进行输出就可以得到每次修改后输出的结果了。 #### 示例: ```java public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException { if (first) { first = false; } Object[] r = getRow(); if (r == null) { setOutputDone(); return false; } r = createOutputRow(r, data.outputRowMeta.size()); String test = get(Fields.In, "test").getString(r); String[] split = test.split(","); for(String s : split){ //使用RowDataUtil.createResizedCopy复制r对象,利用复制的对象进行行输出 Object[] newRow = RowDataUtil.createResizedCopy(r, data.outputRowMeta.size()); get(Fields.Out, "test").setValue(newRow, s); putRow(data.outputRowMeta, newRow); } return true; } ``` #### 引用 本文引用自博客:[kettle - 使用java代码新增行](https://www.jianshu.com/p/f8fee9a0020b "kettle - 使用java代码新增行")
Comments | NOTHING