var str = row[8].toString();
var tokens = str.split(" "); var i; for (i =0; i<tokens.length; i++) { var row = createRowCopy(getOutputRowMeta().size()); var index = getInputRowMeta().size(); row[index]=tokens[i]; putRow(row); } trans_Status = SKIP_TRANSFORMATION; 说明:
row[8].toString(); 数据行里第八列里的数据是以空格分隔的一个字符串。如 “aaa bbb ccc ddd”
str.split(" "); 把字符串按照空格分为一个字符数组,如上面的例子,就分隔为长度为 4 的数组。
for (i =0; i<tokens.length; i++) 循环tokens { createRowCopy(getOutputRowMeta().size()); 使用 createRowCopy 函数创建一个新行,长度是getOutputRowMeta().size()。 index = getInputRowMeta().size(); 根据输入流获得数据行里最后一列的位置。 row[index]=tokens[i]; 把每个 token, 放到每个新创建行的最后一列。 } trans_Status = SKIP_TRANSFORMATION; 这个是必要的,保证原始的数据行“aaa bbb ccc ddd”,不会被放入输出流中。 通过这个脚本一行数据可以变成四行数据。 |
|