MapReduceジョブを作成した後、spark/scalaを学習しています。Spark Error "stats()"を実行中:パラメータnumの暗黙の値を見つけることができませんでした。Numeric [Double]
私はHDFSでファイルを解析するのに役立つJava Beanをいくつか書きましたが、これを使ってsparkの進歩をスピードアップするのに役立ちます。
私は成功が私のファイルをロードし、私のJava Beanオブジェクトの配列を作成しなければならなかった:
val input = sc.textFile("hdfs://host:port/user/test/path/out")
import my.package.Record
val clust_recs = clv_input.map(line => new my.package.Record(line))
clust_recs.map(rec => rec.getPremium()).stats()
しかし、最後の行は、このエラーを作成します。
<console>:46: error: could not find implicit value for parameter num: Numeric[Double]
私がテストしてみましたこのフィールドの値はすべて有効なので、私はこのエラーを引き起こす可能性のあるnull値がないことを確信しています。ここで
は、値の一例である:val dblArray = clust_recs.map(rec => rec.getPremium()).filter(!isNaN(_))
dblArray.take(10)
OUTPUT:
res82: Array[Double] = Array(1250.6, 433.72, 567.07, 219.24, 310.32, 2173.48, 195.0, 697.94, 711.46, 42.718050000000005)
私はこのエラーを解決する方法の損失でだと私はちょうど使用しての概念を放棄する必要がある場合は疑問に思います私がすでに作成したJavaBeanオブジェクトです。
は 'ケースクラスをmy.package.Record'です? –
いいえ、my.package.RecordはJavaクラス(ゲッターとセッターを持つ伝統的なJava bean) –
'Record.getPremium()'のシグニチャーは何ですか? –