canova/datavec를 사용하여 CSV 데이터 세트를로드하려고 시도하고 있으며이를 수행하는 "관용적 인"방법을 찾을 수 없습니다. 프레임 워크의 진화가 있음을 알게 된 이래로 나는 다소 어려움을 겪고 있는데, 이는 내가 무엇이 관련이 있고 그렇지 않은지를 결정하는 것을 어렵게 만든다.스키마를 사용하여 dataVec을 사용하여 CSV 파일을 구문 분석하는 방법은 무엇입니까?
object S extends App{
val recordReader:RecordReader = new CSVRecordReader(0, ",")
recordReader.initialize(new FileSplit(new File("./src/main/resources/CSVdataSet.csv")))
val iter:DataSetIterator = new RecordReaderDataSetIterator(recordReader, 100)
while(iter.hasNext){
println(iter.next())
}
}
내가 헤더 설명과 함께 시작하는 CSV 파일을 가지고, 내가 때문에 스키마의 예외가 있기 때문에, 따라서 내 출력이
(java.lang.NumberFormatException: For input string: "iid":)
내가 스키마 빌더로보기 시작 예외입니다/헤더. 그래서 나는 이와 같은 스키마를 추가하려고 생각했다. 그들은 IrisAnalysisExample (https://github.com/deeplearning4j/dl4j-examples/blob/master/datavec-examples/src/main/java/org/datavec/transform/analysis/IrisAnalysis.java)에서 등 불꽃에 연결하기 때문에 내 관점에서
val schema = new Schema.Builder()
.addColumnInteger("iid")
.build()
, 멍청한 놈보기는 BasicDataVec-예는 완전히 명확하지 않다. 파일 내용이 JavaRDD (잠재적으로 스트림)에 먼저 읽힌 다음 나중에 처리되는 것으로 가정합니다. 스키마는 DataAnalysis를 제외하고는 사용되지 않습니다.
그래서, 누군가가 나를 내가 스트림 또는 반복자, 첫 번째 줄과 같은 헤더 기술에 CSV 파일로 (구문 분석 방법을 이해하고 도울 수있는 내가 그들의 책에서 이해
을 (깊은 학습 :? Â . 내가 스키마가 난 단지 IID를 열을 것을 지시 할 것이라고 지금 생각
object S extends App{
val schema: Schema = new Schema.Builder()
.addColumnInteger("iid")
.build
val recordReader = new CSVRecordReader(0, ",")
val f = new File("./src/main/resources/CSVdataSet.csv")
recordReader.initialize(new FileSplit(f))
val sparkConf:SparkConf = new SparkConf()
sparkConf.setMaster("local[*]");
sparkConf.setAppName("DataVec Example");
val sc:JavaSparkContext = new JavaSparkContext(sparkConf)
val lines = sc.textFile(f.getAbsolutePath);
val examples = lines.map(new StringToWritablesFunction(new CSVRecordReader()))
val process = new TransformProcess.Builder(schema).build()
val executor = new SparkTransformExecutor()
val processed = executor.execute(examples, process)
println(processed.first())
}
, 실무자는 스파크가 나는 이렇게 내 코드를 재 작성 (스키마가 사용되는) 데이터 변환에 필요한)에 접근 출력은 다음과 같습니다.