2017-08-24 5 views
0

はなぜエラーにスカラ - エラー:ステートメントの不正スタート(何の修飾子がここで許可されていない)

error: illegal start of statement (no modifiers allowed here) 
override def toString = { 
^ 

スパーク・シェルから(.scalaファイルに包まれた)次のコードをロードする(スパークバージョンを入手できますか2.2.0、Scalaバージョン2.11.8)?

import org.apache.spark.util.StatCounter 

class NAStatCounter extends Serializable 
{ 
    val stats: StatCounter = new StatCounter() 
    var missing: Long = 0 

    def add(x: Double): NAStatCounter = { 
    if (java.lang.Double.isNaN(x)) { 
     missing += 1 
    } else { 
     stats.merge(x) 
    } 
    this 
    } 

    def merge(other: NAStatCounter): NAStatCounter = { 
    stats.merge(other.stats) 
    missing += other.missing 
    this 
    } 

    override def toString = { 
    "stats: " + stats.toString + " NaN: " + missing 
    } 
} 

object NAStatCounter extends Serializable { 
    def apply(x: Double) = new NAStatCounter().add(x) 
} 

それは本からのサンプルコードであり、それが私はこのエラーを取得する奇妙に見える...

+0

これは逐語コードですか?エラーは解析エラーであり、再現できません。 –

+0

これは奇妙です。私は最初からコードを書き直しましたが、比較ツールは同じコードだと言っていますが、今度はエラーが発生します。 エラー:見つからない:StatCounter(行5) – user1403546

+0

を入力してください。クラス定義と同じ行ですが、 "error:not found:type StatCounter"が表示されます – user1403546

答えて

0

toStringメソッドは、そうちょうどそれを戻り値の型を追加する文字列を返します。

override def toString: String = { 
    "stats: " + stats.toString + " NaN: " + missing 
    } 
+0

お返事ありがとうございましたが、解析エラーでした。上記のコードを使って:pasteを正しく動作させる – user1403546

関連する問題