2017-06-05 3 views
0

私はscalaとjavaを完全に使いこなしていて、サンプルのプロデューサコードを実行しようとしています。それは、csvファイルに格納されている生の製品と参照元を取り、rndを使ってランダムなログを生成するだけです。以下は私のコードです:Scalaのログプロデューサオブジェクト

基本的にいくつかの変数を生成し、それを行に追加するのはかなり簡単です。

私は理解することはできませんよ大きな例外エラー・スタック取得していますしかし:

"C:\Program Files\Java\jdk1.8.0_92\bin\java... 

Exception in thread "main" java.nio.charset.MalformedInputException: Input length = 1 
at java.nio.charset.CoderResult.throwException(CoderResult.java:281) 
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:339) 
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178) 
at java.io.InputStreamReader.read(InputStreamReader.java:184) 
at java.io.BufferedReader.fill(BufferedReader.java:161) 
at java.io.BufferedReader.readLine(BufferedReader.java:324) 
at java.io.BufferedReader.readLine(BufferedReader.java:389) 
at scala.io.BufferedSource$BufferedLineIterator.hasNext(BufferedSource.scala:70) 
at scala.collection.Iterator.foreach(Iterator.scala:929) 
at scala.collection.Iterator.foreach$(Iterator.scala:929) 
at scala.collection.AbstractIterator.foreach(Iterator.scala:1417) 
at scala.collection.generic.Growable.$plus$plus$eq(Growable.scala:59) 
at scala.collection.generic.Growable.$plus$plus$eq$(Growable.scala:50) 
at scala.collection.mutable.ArrayBuffer.$plus$plus$eq(ArrayBuffer.scala:104) 
at scala.collection.mutable.ArrayBuffer.$plus$plus$eq(ArrayBuffer.scala:48) 
at scala.collection.TraversableOnce.to(TraversableOnce.scala:310) 
at scala.collection.TraversableOnce.to$(TraversableOnce.scala:308) 
at scala.collection.AbstractIterator.to(Iterator.scala:1417) 
at scala.collection.TraversableOnce.toBuffer(TraversableOnce.scala:302) 
at scala.collection.TraversableOnce.toBuffer$(TraversableOnce.scala:302) 
at scala.collection.AbstractIterator.toBuffer(Iterator.scala:1417) 
at scala.collection.TraversableOnce.toArray(TraversableOnce.scala:289) 
at scala.collection.TraversableOnce.toArray$(TraversableOnce.scala:283) 
at scala.collection.AbstractIterator.toArray(Iterator.scala:1417) 
at clickstream.LogProducer$.delayedEndpoint$clickstream$LogProducer$1(logProducer.scala:16) 
at clickstream.LogProducer$delayedInit$body.apply(logProducer.scala:12) 
at scala.Function0.apply$mcV$sp(Function0.scala:34) 
at scala.Function0.apply$mcV$sp$(Function0.scala:34) 
at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12) 
at scala.App.$anonfun$main$1$adapted(App.scala:76) 
at scala.collection.immutable.List.foreach(List.scala:389) 
at scala.App.main(App.scala:76) 
at scala.App.main$(App.scala:74) 
at clickstream.LogProducer$.main(logProducer.scala:12) 
at clickstream.LogProducer.main(logProducer.scala) 

Process finished with exit code 1 

を誰かが私には例外が何を意味するかを識別助けてくださいことはできますか?ありがとうございました

答えて

0

私はそれが私の素人の知識でした。 IntellijがCSVファイルから値を取得できない単純なIO例外でした。私はそれをリソースのルートディレクトリにインポートすると、誤ったエンコーディングの警告メッセージが表示されました。

しかし努力のための

val Products = scala.io.Source.fromInputStream(getClass.getResourceAsStream("/products.csv")).getLines().toArray

感謝:

エラーは、この時点でいました