0

나는 csv 파일을 로딩하고 데이터베이스에 저장하기 위해 pentaho를 사용해 보았습니다. CSV의 열 중 하나에 여러 유형 값이 있습니다. 2.7777777777777E-06, 0, 2222, 2, 35.023CSV에서 Pentaho 다중 유형 변환

변환 기능이 유형 변환을 지원하지 않습니다. 모든 유형의 숫자에 대해 올바른 패턴으로 수정 해 주시기 바랍니다.

오류 메시지 :

Modified Java Script Value.0 - ERROR (version 7.1.0.0-12, build 1 from 2017-05-16 17.18.02 by buildguy) : Unexpected error 2017/11/24 10:17:01 - Modified Java Script Value.0 - ERROR (version 7.1.0.0-12, build 1 from 2017-05-16 17.18.02 by buildguy) : org.pentaho.di.core.exception.KettleValueException: 2017/11/24 10:17:01 - Modified Java Script Value.0 - Javascript error: 2017/11/24 10:17:01 - Modified Java Script Value.0 - 2017/11/24 10:17:01 - Modified Java Script Value.0 - Unexpected error 2017/11/24 10:17:01 - Modified Java Script Value.0 - 2017/11/24 10:17:01 - Modified Java Script Value.0 - Unexpected conversion error while converting value [Average String] to a Number 2017/11/24 10:17:01 - Modified Java Script Value.0 - 2017/11/24 10:17:01 - Modified Java Script Value.0 - Average String : couldn't convert String to number 2017/11/24 10:17:01 - Modified Java Script Value.0 - 2017/11/24 10:17:01 - Modified Java Script Value.0 - Average String : couldn't convert String to number : non-numeric character found at position 18 for value [2.777777777777775e-06] 2017/11/24 10:17:01 - Modified Java Script Value.0 - 2017/11/24 10:17:01 - Modified Java Script Value.0 - 2017/11/24 10:17:01 - Modified Java Script Value.0 - 2017/11/24 10:17:01 - Modified Java Script Value.0 - 2017/11/24 10:17:01 - Modified Java Script Value.0 - 2017/11/24 10:17:01 - Modified Java Script Value.0 - at org.pentaho.di.trans.steps.scriptvalues_mod.ScriptValuesMod.addValues(ScriptValuesMod.java:475) 2017/11/24 10:17:01 - Modified Java Script Value.0 - at org.pentaho.di.trans.steps.scriptvalues_mod.ScriptValuesMod.processRow(ScriptValuesMod.java:541) 2017/11/24 10:17:01 - Modified Java Script Value.0 - at org.pentaho.di.trans.step.RunThread.run(RunThread.java:62) 2017/11/24 10:17:01 - Modified Java Script Value.0 - at java.lang.Thread.run(Thread.java:748) 2017/11/24 10:17:01 - Modified Java Script Value.0 - Caused by: org.pentaho.di.core.exception.KettleValueException: 2017/11/24 10:17:01 - Modified Java Script Value.0 - Unexpected error 2017/11/24 10:17:01 - Modified Java Script Value.0 - 2017/11/24 10:17:01 - Modified Java Script Value.0 - Unexpected conversion error while converting value [Average String] to a Number 2017/11/24 10:17:01 - Modified Java Script Value.0 - 2017/11/24 10:17:01 - Modified Java Script Value.0 - Average String : couldn't convert String to number

+1

이 번호는 모두 CSV 판독기에서 번호 유형을 가져올 수 있습니다. 당신의 오류는 수정 된 자바 스크립트 단계에 의해 숫자로 변환되기를 원하지 않는 String 유형으로 읽은 Date 형식으로 이루어집니다. – AlainD

+0

의견을 보내 주셔서 감사합니다. 이 오류를 설명해 주실 수 있습니까? "수정 된 Java Script Value.0 - 평균 문자열 : String을 숫자로 변환 할 수 없습니다 : 18 자리에 숫자 값이 아닌 숫자가 아닌 문자 [2.777777777777775e-06]"사실이 문제를 해결해야합니다. –

답변

0

Average StringCSV reader로하지 번호와 같은 문자열로 읽하고는 "E"를 포함하기 때문에 PDI는 번호로하지 않습니다. 인사말은 PDI가 아니라 Javascript로 이동합니다.

해결 방법 1 : 가장 Number A와 읽기하는 것입니다 : enter image description here

해결 방법 2 : 어떤 이유로 당신이, 당신이 Metadata 탭 유형을 변경하려면 Select values 단계를 사용할 수없는 경우 .

해결책 3 : Javascript 단계로, 당신은 명시 적으로 자바 스크립트 캐스팅 사용해야하기 전에 숫자의 문자열을 캐스팅 할 수없는 경우는 그러나 var x = Number(x);를, 당신의 변수 이름에 공백이 포함되어 있으며, 자동으로 매핑 할 수없는 자바 스크립트 변수에.

this["Average String"] = Number(this["Average String"]); 

그런 다음 숫자로 바닥 테이블의 필드 목록에서 Average String를 얻을 수 있습니다 다음 hack는 할 수 있습니다.