私は、以下のシナリオ型の不一致が見つかりました:単位予想:RDD [XYZ ...]
//scores sample file
0000006,Danny,6.2
0000002,Danny,7.0
コード用の型の不一致エラーを取得しています。
case class Person(id: String, dob: String, country: String, score: Double)
def getResultRecords(persons: RDD[List[String]]): RDD[Person] = {
val personUS = persons.map(rec => Person(rec.head, rec(1),"US"), java.lang.Double.parseDouble(cpg.getOrElse(rec.head,"0").toString())
val personMX = persons.map(rec => Person(rec.head, rec(1),"MX"),java.lang.Double.parseDouble(cpg.getOrElse(rec.head,"0").toString()))
val personAll = personUS.union(personMX)
//return personAll
}//Getting an error saying " type mismach found : Unit expected : RDD[Person]"
私はここで間違っていますか?どうすれば修正できますか?
私を助けてください。
スパークの怠惰は、これとはまったく関係がありません。コンパイル時にはまったく影響を与えません。 –
@TzachZohar、あなたはエラーを再現してみましたか?私がしたので、最後にreturn文を返さないか、 'personAll.cache()'のようなアクションを使うと、コンパイラはその型不一致例外をスローします。 – Micho
return文( 'return'キーワードの有無にかかわらず)を追加すると、他の答えが示唆するように、問題が解決されます。正しい値を返すことはSparkの "action"ではなく、 'cache'(これは変換)でもありません。(' cache'も 'RDD [Person]'を返すので)本当に問題を解決しますが、この答え。 –