製作 kettle 外掛時,在 processRow 方法裡的幾個常用方法說明:

PDI發表於2010-06-03

製作 kettle 外掛時,在 processRow 方法裡的幾個常用方法說明:(轉載請註明:http://pdi.itpub.net)

//複製輸入行的後設資料,並設定為輸出行的後設資料。

RowMetaInterface outputRowMeta = getInputRowMeta().clone();

//構造一個新的輸出列。方法一

RowMetaInterface rowMeta = new RowMeta();

Object[] rowData = new Object[1];

int valtype = ValueMeta.getType("String");

ValueMetaInterface valueMeta = new ValueMeta( “FieldName1”, valtype); valueMeta .setLength(-1);

rowMeta.addValueMeta(valueMeta);

RowMetaAndData metaAndData = new RowMetaAndData(rowMeta, rowData);

[@more@]

RowMetaInterface newMeta = metaAndData.getRowMeta();

outputRowMeta.mergeRowMeta(newMeta);

//構造一個新的輸出列。方法二

RowMetaInterface outputRowMeta = getInputRowMeta().clone();
int valtype = ValueMeta.getType("String");
ValueMetaInterface valueMeta = new ValueMeta( “FiledName1”, valtype);
valueMeta.setLength(-1);
outputRowMeta.addValueMeta(valueMeta);

//從上一個步驟獲得一行資料。

Object[] r = null;

r = getRow();

//獲得一行資料裡,某一個欄位的值

String fieldname = MyOldField;

int fieldIndex = this.getInputRowMeta().indexOfValue(fieldName);

Object value = r[fieldIndex];

//將新的資料追加到原來的行資料的後面,成為新的輸出行:(轉載請註明:http://pdi.itpub.net)

Object[] values = new Object[1];

values[0]=new value;

r = RowDataUtil.addRowData(r, getInputRowMeta().size(),values);

//將輸出行的後設資料和資料放到快取裡,這樣下一個步驟可以讀取了,注意後設資料的個數和資料的個數要相等。:(轉載請註明:http://pdi.itpub.net)

putRow(outputRowMeta, r);

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14366449/viewspace-1034148/,如需轉載,請註明出處,否則將追究法律責任。

相關文章