Kettle 使用Json输入
Posted Never be the same
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kettle 使用Json输入相关的知识,希望对你有一定的参考价值。
import java.math.BigDecimal; private static final String JD="jd"; private static final String WD="wd"; public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException{ if(first) { first = false; } Object[] r = getRow(); if (r == null) { setOutputDone(); return false; } //维度 String wdstr = get(Fields.In, WD).getString(r); //经度 String jdstr = get(Fields.In, JD).getString(r); if(!isArray(wdstr)||!isArray(jdstr)){ return true; } get(Fields.Out, WD).setValue(r, getCovNewVlaue(wdstr)); get(Fields.Out, JD).setValue(r, getCovNewVlaue(jdstr)); putRow(data.outputRowMeta, r); return true; } private double getCovNewVlaue(String dustr) { String replace = dustr.replace("N", "").replace("E", ""); String[] duArray = replace.split(" "); double duValue = Double.parseDouble(duArray[0]); double minuteValue = Double.parseDouble(duArray[1]); double secondValue = Double.parseDouble(duArray[2]); BigDecimal minute = BigDecimal.valueOf(minuteValue).divide(BigDecimal.valueOf(60), 10, BigDecimal.ROUND_HALF_DOWN); BigDecimal second = BigDecimal.valueOf(secondValue).divide(BigDecimal.valueOf(3600), 10, BigDecimal.ROUND_HALF_DOWN); BigDecimal newVlaue = BigDecimal.valueOf(duValue).add(minute).add(second); return newVlaue.doubleValue(); } private boolean isArray(String dustr){ return dustr.split(" ").length==1?false:true; }
以上是关于Kettle 使用Json输入的主要内容,如果未能解决你的问题,请参考以下文章